开发工具

Python版本:3.6.4

相关模块:

argparse模块;

requests模块;

jieba模块;

wordcloud模块;

以及一些Python自带的模块。

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

原理简介

一. 爬虫目标

爬取某条微博底下的评论数据。

二. 模拟登录

爬像新浪微博这样的大网站,不用想就知道不登录肯定是爬不了多少数据的(事实就是不登录的话只能爬第一页的评论数据)。

这里为方便起见,我们选择用微博的移动端接口进行模拟登录。即:

界面如下:

image

简单抓包可以发现登录链接为:

image

登录需要post的数据包括:

image

于是我们就可以愉快地写模拟登录微博移动端的代码啦~具体代码实现如下:

image

三. 评论数据爬取

这里我们以爬取胡歌的最后一条微博的评论数据为例。

移动端界面:

image.gif

PC端界面:

image

由于我们模拟登录的是移动端,所以我们只能从移动端爬取微博的评论数据。

移动端简单抓包可以发现只要请求下图这个链接就能获取这条微博的第一页评论数据了:

image

其中,id和mid是相同的,就是该评论页链接橙色加粗的部分:

获得的评论数据如下:

image

那么第二页呢?其实也很简单,可以发现只要请求下图这个链接就能获取这条微博的第二页评论数据了:

image

其实就是比第一页多了两个参数,这两个参数其实就藏在返回的第一页评论数据里:

image

以此类推,第n页所需的max_id和max_id_type参数就藏在返回的第n-1页评论数据里。

可以发现,当该页返回的max_id为0时,表示该页是该条微博底下评论的最后一页。

于是,我们就可以爬到该条微博下方的所有评论数据啦!(QAQ当然前提是网站没有其他的反爬措施,这个显然不太可能。)

那么PC端的微博评论页链接能不能转换为对应的移动端微博评论页链接呢?毕竟我们在电脑上一般都用的PC端接口登录然后看微博啊!

当然可以!

在胡歌最后一条微博评论页的PC端界面,我发现了这个:

注意:请求微博PC端的链接时,需要加cookie信息,经测试,只需要加cookie里的SUB参数就行了,详见相关文件中的源代码。

image

这不就是mid嘛,于是PC端的微博评论页链接就可以很容易地转换为对应的移动端微博评论页链接了。

所以微博评论数据抓取部分的代码就可以很轻松地写出来啦:

image

OK,大功告成完整源代码详见相关文件

使用说明

在终端运行weiboComments.py文件,命令格式如下:

image

例如:

python weiboComments.py -u 用户名 -p 密码 -m 10(即评论数据最多抓10页) -l 某条微博的评论页链接 -t pc(输入pc/phone,用于说明是PC还是移动端的微博评论页链接)。

简单运行一下,截个图:

image

数据保存在当前文件夹内,文件名为:

comments_当前时间戳.pkl。

注意:

为避免给微博服务器带来不必要的压力,每爬一页我都设置了较长的停顿时间。

数据可视化

随手画个前十页评论的词云吧,其他数据懒得分析了:

image

源代码见相关文件中的vis.py文件。

更多

新浪微博相关资料

关注公众号“python工程狮”回复‘新浪微博’获取。

python抓取微博评论_Python爬取新浪微博评论数据,你有空了解一下?相关推荐

  1. python爬携程景区评论_python爬取携程景点评论信息

    python爬取携程景点评论信息 今天要分析的网站是携程网,获取景点的用户评论,评论信息通过json返回API,页面是这个样子的 按下F12之后,F5刷新一下 具体需要URL Request的方式为P ...

  2. python爬取豆瓣书籍_python 爬取豆瓣书籍信息

    继爬取 猫眼电影TOP100榜单 之后,再来爬一下豆瓣的书籍信息(主要是书的信息,评分及占比,评论并未爬取).原创,转载请联系我. 需求:爬取豆瓣某类型标签下的所有书籍的详细信息及评分 语言:pyth ...

  3. python开源代码百度盘_python爬取百度云网盘资源-源码

    今天测试用了一下python爬取百度云网盘资源. 代码片段import urllib import urllib.request import webbrowser import re def yun ...

  4. python 柱状图上显示字体_Python爬取百部电影数据,我发现了这个惊人真相!

    2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%:国产电影总票房411.75亿元,同比增长8.65%,市场占比 ...

  5. python爬取歌曲评论_python 爬取歌曲评论的简单示例

    这篇文章主要为大家详细介绍了python 爬取歌曲评论的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣python 爬取歌曲评论的简单示例的小伙伴,下面一起跟随512笔记的小编罗X来看看吧. ...

  6. python爬虫微博图片_python爬取微博图片及内容

    import random import urllib.request import json import re import requests import time id=(input(&quo ...

  7. python爬取豆瓣电影评论_python 爬取豆瓣电影评论,并进行词云展示及出现的问题解决办法...

    def getHtml(url): """获取url页面""" headers = {'User-Agent':'Mozilla/5.0 ( ...

  8. python公众号留言功能_Python 爬取公众号文章、评论

    前段时间有个爬取公众号评论小需求,花了几天查了不少资料,实现方案有好几种,最后其中一种得以实现.参考 [Python爬虫]微信公众号历史文章和文章评论API分析 . 本人是 Python 小白,会忽略 ...

  9. python爬取评论_python爬取网易云音乐评论

    本文实例为大家分享了python爬取网易云音乐评论的具体代码,供大家参考,具体内容如下 import requests import bs4 import json def get_hot_comme ...

最新文章

  1. keil中使用Astyle格式化你的代码的方法-keil4 keil5通用
  2. 消除python变量的值_SPSS变量值标签的批量设置、复制、显示及删除问题
  3. 解决安装ROS 时rosdep update 问题(time out)
  4. Linux sed编辑器
  5. linux head命令作用,Linux查看文件内容之head命令
  6. 1.8. subshell
  7. 数字电子技术基础第三版杨志忠_阎石《数字电子技术基础》(第6版)笔记和课后习题(含考研真题)详解复习笔记资料...
  8. 微信小程序微商城(十):用户收货地址管理
  9. 学习资料:8大行业,30个大数据实践案例分享
  10. keil安装stm32系列
  11. 企业选择WMS仓库管理系统免费版是否更好
  12. 计算机保存文件快捷键,保存快捷键是什么,保存文档的快捷键
  13. 2021高考成绩查询数学和物理,2021高考预测一本线 大概分数是多少
  14. Pycharm里面的一些超级好用的功能——(TODO注释)用法防遗忘大法
  15. window中的DLL和linux中的os文件是什么东西
  16. npm install node-sass的时候报错ERR gyp ERR C++
  17. 用Jplayer做的一个带动画的播放器
  18. i6mA-DNC:基于深度学习的二核苷酸表示预测水稻基因组DNA n6 -甲基腺苷位点
  19. Git操作 【详细】【详细】
  20. postgresql-with as处理子查询速度慢的问题

热门文章

  1. c语言输入123输出112233,C语言程序的设计 第3章 程序语言基础1.pdf
  2. 【干货】python xlwt写入excel操作
  3. Lucene 查询中的距离查询(proximity query)
  4. java.sql.SQLException: Access denied for user ''@'localhost' (using password: YES)
  5. 阿里服务器网站访问非常慢,更换本地DNS 解决网站访问速度变慢问题
  6. 如何在虚拟机操作系统CentOS 7.5上部署TiDB数据库群集
  7. linux安装酷狗软件下载,Ubuntu 9.04安装kugou(酷狗)音乐
  8. Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 [Neutron Open vSwitch + VLAN Virtual Network]
  9. 超详细的Charles抓包工具的使用
  10. 【vn.py】期货穿透式CTP API接入