python爬取微博评论(无重复数据)

python爬取微博评论(无重复数据)

  • 前言
  • 一、整体思路
  • 二、获取微博地址
  • 1、获取ajax地址2、解析页面中的微博地址3、获取指定用户微博地址
  • 三、获取主评论
  • 四、获取子评论
  • 1、解析子评论2、获取子评论
  • 五、主函数调用
  • 1、导入相关库2、主函数执行3、结果
  • 写在最后

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:961562169

Tip:本文仅供学习与交流,切勿用于非法用途!!!

前言

前段时间微博上关于某日记的评论出现了严重的两极分化,出于好奇的我想对其中的评论以及相关用户做一个简单的分析,于是我在网上找了相关的代码,简单的修改了cookies等参数就Run起来了。
既然没报错!! 我很震惊,从未若此畅快过~

随后便分析起来,过了一会就发现:事情并不简单,数据是重复的!!

没错,重复率如此之高,令人发指。于是,我开始了我的探索之路~
说明:整体代码还是借鉴了之前大佬的,主要是解决了数据重复的问题,如有侵权还请联系!

一、整体思路

思路也比较清楚,我画了一个极其简单的流程图:


至于这里为什么主评论和子评论要分开获取,这也是解决重复问题的关键,通过测试可以知道直接按照规律修改页面参数或者通过.cn的页面爬取,在到达一定的数量后(大概是几百)就无法得到数据或是出现数据重复。

二、获取微博地址

访问微博用户页面时的请求URL为:

https://weibo.com/xxxxxxxxx?is_search=0&visible=0&is_all=1&is_tag=0&profile_ftype=1&page=1

其中通过修改page参数,即可控制页码,但是细心的小伙伴应该发现了,一页的数据除了直接加载的HTML之外,还有两次是通过ajax动态获取的:

start_ajax_url1 = 'https://weibo.com/p/aj/v6/mblog/mbloglist?ajwvr=6&domain=%s&is_all=1&page={0}&pagebar=0&pl_name=Pl_Official_MyProfileFeed__20&id=%s&script_uri=/%s&pre_page={0}'%(domain,page_id,user)
start_ajax_url2 = 'https://weibo.com/p/aj/v6/mblog/mbloglist?ajwvr=6&domain=%s&is_all=1&page={0}&pagebar=1&pl_name=Pl_Official_MyProfileFeed__20&id=%s&script_uri=/%s&pre_page={0}'%(domain,page_id,user)

也就是说,每页数据有三部分组成:

1、获取ajax地址

通过主界面,获取相应的ajax请求地址:

def get_ajax_url(user):
    url = 'https://weibo.com/%s?page&#
  • 2
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值