爬取Ajax动态网页-大宗交易公开信息
1.什么是Ajax
什么是Ajax动态网页,简单的说就是我们点击页面的时候,链接不会发生变化,但是数据却发生了变化。这就可以算是Ajax(个人理解)。如果要标准的解释可以找度娘
2.爬大宗交易
废话不多说,今天开始要爬的是大宗交易公开信息
在这里我们可以看到换页之后,链接并没发生变化。所以我们按F12打开开发者工具进行抓包观察规律。如果第一次打开数据,需要刷新页面,或者点击下一页就可以抓到的包。我们
我们先单击看里面的数据就可以发现有趣的东西
当我们看到这些数据后就意味着成功了一大半,然后我们在看看是什么样的请求(POST/GET)以及发送到服务器的表单是什么样的。
则表单数据请求的代码
data={
'page': pages,
'startDate':'',#开始日期 格式 "2021-03-22" 如果不填就默认最新的数据
'endDate':'', #和上面一样,不过不起效果
'btzqdm':'',
'keywords':'',
'xxfcbj':'',
'position': 'first',
'sortfield': 'hqjsrq',
'sorttype':'',
}
由上图我们可以看到是POST请求,表单数据需要改的就页数page,其他的多观察几次也很好理解代表了什么。最后我们双击看看里面的json结构如何
看到上面的json结构,如果不对json数据清洗一下,json.loads()函数根本识别不了。所以我们需要把jQuery331()进行过滤
即过滤代码为
subdata = re.sub('^jQuery331\(', '', data)
resubdata = re.sub('\)$', '', subdata)
newdata=re.sub('\'','"',resubdata) #json.loads里面接受的string类型数据要" 而不是 '
最后我们编完代码后就可以获取交易信息了
最近新开了一个淘宝店,如果有需要爬取数据的可以来我淘宝,新店开业在一个月内一律八折,欢迎光临
淘宝链接
https://item.taobao.com/item.htm?ft=t&id=641152013887
第一次编写文章,如果由什么错的或者需要改进的请多多指教。