赞
踩
目标网址:http://www.linked-brain-data.org/relateness/ListProtein2Gene?link=link3
该网页上的内容为与脑疾病有关的蛋白质基因等数据,对于跳页后URL变化的网站,可以观察url的变化情况,从而用一个循环就可爬取不同页面的数据内容。
但目标网页跳页后url未变化,是用了js跳页,针对这种情况,我在查阅资料时了解到有两种方法可以解决(1)用自动化测试工具selenium来模仿鼠标点击下一页,但这种方法比较慢而且不适用于大数据(https://www.cnblogs.com/sanduzxcvbnm/p/10276617.html)(2)抓包分析 (可用Fiddler,也可直接F12看network) 本次用第二种方法,该HTML采用了GET方法(不是POST),找到和页数有关的内容pagenum,代码如下:
- import requests
- import pandas as pd
- import csv
- for i in range(1,5568): #跳页
- data={
- 'pagenum':i
- }
- url='http://www.linked-brain-data.org/relateness/ListProtein2Gene?link=link3'
- s = requests.session()
- d=s.get(url, params = data)
- tb = pd.read_html(d.text)[0] #
- tb.to_csv(r'Protein-Gene.csv', mode='a', encoding='utf_8_sig', header=0, index=0)
- print('抓取完成')
由于抓取的是该网页的表格数据,所以直接用了panda库读取表格的操作,这种更为简单。
另外对于一般网页数据的爬取,excel也可以做到。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。