一、爬取内容及网站
1.本次爬取的网站是99健康网中的疾病信息,包括疾病名称,所属科室及体态特征信息
2.网站中具体疾病的搜索路径有两种方式:按科室搜索、按部位搜索
(1)按科室搜索:科室–小科室–所含疾病
(2)按部位搜索:部位—所含疾病
可以看出,按部位搜索的路径更短些,因此本次使用按部位搜索的过程,进行疾病信息的爬取。
3.整体爬取思路:爬取所含部位----按部位爬取每一部位包含的疾病名称及疾病对应链接–爬取对应疾病信息—写入表格并保存
4.网址特点
(1)部位信息对应网址为:jbk.99.com.cn/buei/
(2)爬取得到所有部位[‘头部’,…]
(3)某一部位包含的疾病:jbk.99.com.cn/buwei/toubu-n.html(只需添加部位拼音和统一后缀.html),爬取该部位所有的疾病,同时网页源码中有该疾病对应的链接前缀,也一并爬取保存。-n中,n 为页码
4.疾病具体链接为https+上一步爬到的疾病链接+zhengzhuang.html
二、爬取过程(源码)
// An highlighted block
import re
import urllib.request
import urllib
import xlwt
#网址
buwei_url1 = "https://jbk.99.com.cn/"
buwei_url2 = ".html"
#爬取部位信息https://jbk.99.com.cn/部位/
buwei_url=buwei_url1+'buwei/'
try:
buwei_urlop = urllib.request.urlopen(buwei_url,timeout=100)
except Exception:
print("超时")
data_buwei=buwei_urlop.read().decode('GBK')#!!!!!原网页编码方式为GBK
#得到部位名称,保存在列表ls_buwei中
link_buwei="<div class=\"part-txt\">\\s*<h3>\\s*<span>\\s*(.*?)</span>"
ls_buwei=[]
patten=re.compile(link_buwei)
ls_buwei=patten.findall(data_buwei)
2.按部位,爬取各部位疾病名称及链接,再爬取疾病具体信息
#新建表格文本
book