欢迎光临散文网 会员登陆 & 注册

高手实战!Python爬取陈一发儿微博,得到一个有意思的发现

2023-03-08 15:30 作者:编程小宇e  | 我要投稿



高手实战!Python爬取陈一发儿微博,得到一个有意思的发现

引言

利用Ajax分析微博并爬取其内容如微博内容,点赞数,转发数,评论数等。

分析

打开陈一发微博网站:https://m.weibo.cn/p/1005051054009064,并同时打开开发者工具。

我们可以在Network中分析可以得出,微博中所有的内容都是名为“getIndex?containerid=1076031054009064”的响应

高手实战!Python爬取陈一发儿微博,得到一个有意思的发现

经过这其中的JSON代码分析后可以找到内容相对应的位置。


高手实战!Python爬取陈一发儿微博,得到一个有意思的发现


我们可以尝试切换到第一个响应中,查看返回的结果,可以看到代码只要不到50行,所以这些数据都是浏览器拿到数据后再进一步渲染出来的。


我们在尝试滚动页面,加载完成后会发现得到了新的响应,这也对应着加载出来的新的微博内容。


通过前后几次Request URL代码的不同来看


高手实战!Python爬取陈一发儿微博,得到一个有意思的发现


高手实战!Python爬取陈一发儿微博,得到一个有意思的发现


这其中改变的只有后面的page,而其中的containerid一直都是固定的,组成是由107603加上id号。


高手实战!Python爬取陈一发儿微博,得到一个有意思的发现


这里还可以得到一个很重要的参数 total:微博的总数量,由此我们可以用来估计page的数量。

在学习中有迷茫不知如何学习的朋友小编推荐一个学Python的学习裙【639584010】无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!裙内有开发工具,很多干货和技术资料分享!

代码编写

这里使用urlencode()方法来将参数转化为URL的GET请求参数


pyQuery来解析代码。

高手实战!Python爬取陈一发儿微博,得到一个有意思的发现


代码中,因为是Ajax请求得到的内容,所以请求头必须带上 ‘X-Requested-With’: ‘XMLHttpRequest’!


到此为止,我们便可以得到喜欢博主的所有微博内容了。


高手实战!Python爬取陈一发儿微博,得到一个有意思的发现


获取方式:点赞+评论

高手实战!Python爬取陈一发儿微博,得到一个有意思的发现的评论 (共 条)

分享到微博请遵守国家法律