赞
踩
Colly 学习笔记(三)——爬虫框架,抓取动态页面(上证A股列表抓取)
Colly 学习笔记(一)——爬虫框架,抓取中金公司行业市盈率数据
Colly 学习笔记(二)——爬虫框架,抓取下载数据(上证A股数据下载)
Colly 学习笔记(三)——爬虫框架,抓取动态页面数据(上证A股动态数据抓取)
前两章节主要讨论静态数据的抓取,我们只需要把网页地址栏中的url传到get请求中就可以轻松地获取到网页的数据,但是有的网页是动态页面,我们通过网页源代码无法找到数据,翻页时URL也没有改变。此时就无法抓取数据。比如 http://www.sse.com.cn/assortment/stock/list/share/ 如下图所示,通过开发者工具和查看网页源代码发现,虽然相同的URL但是内容却不一样。此时就要找到动态页面对应的URL,才可以抓取数据。
查看页面的真实URL方法如下:
通过postman查看并排除无效参数
#动态URL原始参数
http://query.sse.com.cn/security/stock/getStockListData2.do?&jsonCallBack=jsonpCallback49711&isPagination=true&stockCode=&csrcCode=&areaName=&stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=3&pageHelp.pageSize=25&pageHelp.pageNo=3&pageHelp.endPage=31&_=1609296745917
#postman调试优化后的参数
http://query.sse.com.cn/security/stock/getStockListData2.do?stockType=1&pageHelp.cacheSize=1&pageHelp.beginPage=3&pageHelp.pageSize=25&pageHelp.pageNo=3
postman查看如下图所示
//finish
c.OnScraped(func(r *colly.Response) {
//解析Json
var item PageResult
err := json.Unmarshal(r.Body, &item)
if err != nil {
receiver.MLog.GetLogHandle().WithFields(log.Fields{
"err":err,"res":string(r.Body)}).Error("Receive Error ")
//若返回系统繁忙,则等一段时间重新访问
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。