分析周杰伦超话爬虫思路

柔情痞子 提交于 2019-11-26 16:09:44

在360浏览器(这里之所以没用chrome,是因为在调试模式中,谷歌浏览器不能查到页面的关键词,而360却可以)中找到#周杰伦超话#页面,然后调出调试窗口,改为手机模式,然后过滤请求,只查看异步请求,查看返回数据格式,找到微博内容所在

通过手机m.weibo访问周杰伦超话页面
F12打开调试模式,只看xhr的一部请求,点击帖子选项卡,在弹出的请求中右键在新的选项卡中打开在这里插入图片描述
也可以直接在调试模式中搜索,是否能看到页面中显示的元素来确认请求地址是否准确,这里我搜索的是“告白气球”,如果不能找到就在请求的地址中,选择在新标签页打开,然后搜索关键词
可以看到请求的地址是https://m.weibo.cn/api/container/getIndex?containerid=1008087a8941058aaf4df5147042ce104568da_-feed&extparam=%E5%91%A8%E6%9D%B0%E4%BC%A6&luicode=10000011&lfid=1008087a8941058aaf4df5147042ce104568da-feed
将页面向下滚动,会发现有新的请求地址,是https://m.weibo.cn/api/container/getIndex?containerid=1008087a8941058aaf4df5147042ce104568da
-feed&extparam=%E5%91%A8%E6%9D%B0%E4%BC%A6&luicode=10000011&lfid=1008087a8941058aaf4df5147042ce104568da-_feed&since_id=4403309069065553
通过在线的地址比对工具进行比对http://tool.oschina.net/diff/
可以看到新产生的请求多了一个参数since_id,分析第一个请求和第二个请求,可以看到第一个请求有1个since_id,第二次请求有2个since_id
查找这个属性的值在这里插入图片描述
在图片中又发现了mblog中的id属性值在这里插入图片描述
每次请求中都会有多个"card_type": "9"属性,但是这个是最后一个。没有规律可以找到
去微博的开放平台看看吧https://open.weibo.com/wiki/Statuses/mentions,通过查找关键词since_id看到这样一段话:若指定此参数,则只返回ID比since_id大的提到当前登录用户的微博消息(比since_id发表时间晚)。那就找到id最大的评论,然后作为since_id参数作为拼接就可以了。但是实际再看所有id参数,又是相反的,通过分析,得到我们要找到id最小的,然后作为since_id参数传递,以此来得到更早的评论信息。
通过for循环,不断调用定义的函数即可实现不停的向早期爬取评论。
我们要获取的是评论人的信息,以此来分析粉丝的分布
点击评论人的头像,在链接地址可以看到uid,查找这个uid值,可以看到在这里插入图片描述
通过百度,得知获取用户信息的地址为https://weibo.cn/用户id/info,之所以没用用户详细信息的页面,是因为这个页面的规律没找到。。。在这里插入图片描述
之后就可以通过这个id来获取到用户的信息了,当然为了数据的准确性,也可以去重
想要查看用户信息是需要登录的,这里通过requests.Session()来保存登录状态。
在导出csv之后,就可以通过pyechart来生成分析图了
pyecharts的地址是https://github.com/pyecharts/pyecharts

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!