开发工具

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. 互联网电商老三巨头在网站推广下逐步退居幕后新三巨头蓄势待发
  2. linux写程序四则运算,Shell编程之变量及四则运算
  3. 自由职业的前半年,我是如何度过的?
  4. 修改 tomcat 初始 ROOT 的方法
  5. WdatePicker的一些用法
  6. [PHP] 解决:hex2bin(): Hexadecimal input string must have an even length
  7. C语言贪吃蛇小游戏,贪吃蛇C语言代码实现大全
  8. 初学爬虫-qq空间模拟登录
  9. ABP理论学习之EntityFramework集成
  10. linux下查看硬盘型号、大小等信息
  11. Android Studio 编译 UVCCamera
  12. unity通过鼠标滑轮控制物体大小
  13. yxc_第一章 基础算法(三)_离散化
  14. setText()的一点小体会
  15. Racket编程指南——8 输入和输出
  16. git stash 贮藏你的修改
  17. Scrum敏捷开发简介
  18. 生物信息分析全景介绍
  19. 那些年我做的移动互联网产品
  20. 各版本iphone屏幕分辨率和cocos2d下size

热门文章

  1. 机器人小农在CSDN的第一篇文
  2. 【转】史上最全!多图带你读懂各种常见卷积类型
  3. python之利用requests库爬取西刺代理,并检验IP的活性
  4. 【面试】Java中级工程师社招简历
  5. 一款基于SpringBoot+layui 开源的固定设备资产管理系统源码 源码免费分享
  6. Source Insight 配色方案
  7. uni-app打开外链
  8. kdj超卖_KDJ买入形态:D线进入超卖区间
  9. [Mac OS X] 如何在终端查看 Mac OS 版本信息
  10. 到底什么是非线性规划?