最近遇到了项目遇到了这样的问题,如下所示爬虫爬取下一页的内容,求各位解决解决
直接请求数据接口就行了,分页参数是pn,这修改就行,示例代码如下,有帮助麻烦点个采纳【本回答右上角】,谢谢~~有其他问题可以继续交流~
http://3.push2.eastmoney.com/api/qt/clist/get?cb=jQuery1124032332843249790666_1629461999400&pn={}&pz=20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&fid=f3&fs=m:1+t:2,m:1+t:23&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152&_=1629461999333
数据对照
import requests
url="http://3.push2.eastmoney.com/api/qt/clist/get?pn={}&pz=20&po=1&np=1&ut=bd1d9ddb04089700cf9c27f6f7426281&fltt=2&invt=2&fid=f3&fs=m:1+t:2,m:1+t:23&fields=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f12,f13,f14,f15,f16,f17,f18,f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152&_=1629461999333"
headers={
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" ,
"Referer":"http://quote.eastmoney.com/center/gridlist.html"
}
for i in range(1,3):#采集前2页
rurl=url.format(i)
r=requests.get(rurl,headers=headers)
data=r.json()
for item in data['data']['diff']:
print('代码:%s\t名称:%s\t最新价:%s\t涨跌幅:%s'%(item['f12'],item['f14'],item['f2'],item['f3']))
可以模拟点击进入到下一页, 然后渲染之后抓取页面数据.
网址多少
用的requests还是selenium?
看到下一页中的data-index=58
,很明显属于异步渲染的页面,
如果用的requests,就要分析出来58和下一页URL关联,比如?page=58
这种,根据分析结果直接拼接新的url就可以继续爬取了
如果用的selenium,先定位到”下一页”这个元素,然后执行click()
方法,页面会自动渲染下一个的内容,就可以继续爬取了
参考代码
driver.find_element_by_xpath('//a[@class="next paginate_button"]').click()