Requests、json、io、sys、re、time、csv

PC端抓包后,发现参数过多。
从移动端某博抓取url,发现加密参数较少方便入手
爬像新浪某博这样的大网站,不用想就知道不登录肯定是爬不了多少数据的(事实就是不登录的话只能爬第一页的评论数据)。
所以我们先抓取到cookie进行保存:

这里只提取了我想要爬取的四个目标url:
https://m.weibo.cn/1653196740/4595525837399095
https://m.weibo.cn/2027363802/4319350444018706
https://m.weibo.cn/2602644737/4638484377896654
https://m.weibo.cn/2337348632/4638209580207301
界面如下:

首先自动加载评论数据时抓取ajax请求,发现response有unicode编码的数据,截图如下:

通过preview视图中发现,这些编码正式我们想要的评论数据,截图如下:

3. 那么如果获取自动加载的下一页的评论信息呢?抓取下一页的评论数据url分析
第一页的url为:

第二页的url为:

结果,请求中多了一个max_id和max_id_type
继续分析两者request和response发现:
第一页返回的json信息中包含的max_id和max_id_type正是下一页所需要的url参数。

接下来就可以开始我们的爬虫了。
爬取结果如下,只爬了1W条左右:



利用pandas,jieba来计算每条评论信息的分数,主要代码如上
代码会生成两个文档:

一个是pos积极评论文档,一个是neg消极评论文档
neg文档如下:
(可以通过评论ID,找到原评论)
有部分误差,后期还可以通过调整评分阈值进行优化

pos文档如下:

这个基本是没什么误差的

