「インテリジェント問診」プロジェクト-データ取得(2)


                     ,         ,            ,           ,                    Excel ,    Excel     。

Excelの操作は主にxlwtモジュールを使用し、公式サイトでダウンロードします(http://pypi.python.org/pypi/xlwt).大まかな使用手順は次のとおりです.
1、モジュールのインポート
  import xlwt
2、workbookを作成する(実はexcelで、後で保存すればいい)  workbook = xlwt.Workbook(encoding = 'utf-8') 3、
  worksheet = workbook.add_sheet('My Worksheet')

4、セルに内容を書き込む  worksheet.write(0, 0, x)     , ,
5、保存  workbook.save('Excel_Workbook.xls')
ソースコード:
__author__='XJX'
__date__='2017.07.19'

import re
import urllib.request
import urllib
import xlwt
  
#  
url1 = "http://drugs.medlive.cn/drugref/html/"
url2 = ".shtml"
i = 1
book=xlwt.Workbook(encoding='utf-8')
sheet1=book.add_sheet('sheet1',cell_overwrite_ok=True)
heads=[u'    ',u'    ',u'  ',u'   ',u'    ',u'    ',u'    ',u'url']
ii=0
for head in heads:
    sheet1.write(0,ii,head)
    ii+=1
for n in range(2,14579):
    url = url1 + str(n) + url2
    
    try:
        #    
        urlop = urllib.request.urlopen(url,timeout=100)
    except Exception:
        print("  ")
        continue
    #     html  
    if 'html' not in urlop.getheader('Content-Type'):
        continue

    #        ,  try..catch    
    try:
        #   utf-8 
        data = urlop.read().decode('utf-8')
        #print(data)
    except:
        continue

    #              ,           ,         
    linkre1 = re.compile("\\s*\\s*(.*?)\\s*\\s*\\s*(.*?)\\s*\\s*\\s*
")
for x in linkre 2.findall(data):一致するすべてのリストを返します.
sheet1.write(i,1,x)
#print(x)
linkre 3=re.compile(「性状:\s*\s*\s*(.*?)\s*」)
for x in linkre 3.findall(data):一致するすべてのリストを返します.
sheet1.write(i,2,x)
#print(x)
linkre 4=re.compile("適応症:\s*\s*\s*(.*?)\s*")
for x in linkre 4.findall(data):一致するすべてのリストを返します.
sheet1.write(i,3,x)
#print(x)
linkre 5=re.compile("用法用量:\s*\s*\s*\s*(.*?)\s*")
for x in linkre 5.findall(data):一致するすべてのリストを返します.
sheet1.write(i,4,x)
#print(x)
linkre 6=re.compile(「副作用:\s*