爬虫仅为相互学习,勿做他用!!!
爬虫部分
爬取数据
爬虫目标数据
- 各期刊论文的标题、作者、摘要、发表时间等信息
如下:
爬虫目标网站
目标网站:计算机研究与发展
其中,设我们需要爬取的数据为该网站 2018 年开始 到至今(2020.1)的所有期刊论文信息,下面看自2018年1月(即2018 第一期)开始的各期论文站点信息:
期号 | 网页地址 |
---|---|
2018.1 | http://crad.ict.ac.cn/CN/volumn/volumn_1300.shtml |
2018.2 | http://crad.ict.ac.cn/CN/volumn/volumn_1301.shtml |
2018.3 | http://crad.ict.ac.cn/CN/volumn/volumn_1302.shtml |
… | … |
2020.1 | http://crad.ict.ac.cn/CN/volumn/volumn_1327.shtml |
很容易我们就可以看出来,自2018.1开始,期刊地址中的字符串片段"volumn_1300"尾的数字随月份增加而增加,且一月对一期(共12*12+1 = 25期)。
故而,爬虫目标网址规律:http://crad.ict.ac.cn/CN/volumn/volumn_ + str(递增数字) + .shtml
获取各期刊网址函数如下:
def getUrls():
all_items = 12*2+1
urls = []
partstr = "http://crad.ict.ac.cn/CN/volumn/volumn_"
for i in range(all_items+1):
strone = partstr + str(1300+i) + ".shtml"
urls.append(strone)
for url in urls:
yield url
爬虫网站页面元素分析
我们需要的是各期刊论文的标题、作者、摘要、发表时间信息,观察网站:如下
显然,我们可以利用 **re(正则表达式)**和 BeautifulSoup库 轻松获取我们需要的数据:
def parsePage(infoList, html):
soup = BeautifulSoup(html,"html.parser")
item = soup(name=