「インテリジェント問診」プロジェクト-データ取得(2)
2474 ワード
, , , , 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*