专栏首页CDA数据分析师教你一招 | 用Python写一个简单的微博爬虫

教你一招 | 用Python写一个简单的微博爬虫

我是个微博重度用户,工作学习之余喜欢刷刷timeline看看有什么新鲜事发生,也因此认识了不少高质量的原创大V,有分享技术资料的,比如好东西传送门;有时不时给你一点人生经验的,比如石康;有高产的段子手,比如银教授;有黄图黄段子小能手,比如阿良哥哥 木木萝希木 初犬饼…

好吧,我承认,爬黄图黄段子才是我的真实目的,前三个是掩人耳目的…(捂脸,跑开)

另外说点题外话,我一开始想使用Sina Weibo API来获取微博内容,但后来发现新浪微博的API限制实在太多,大家感受一下:

只能获取当前授权的用户(就是自己),而且只能返回最新的5条,WTF!

所以果断放弃掉这条路,改为『生爬』,因为PC端的微博是Ajax的动态加载,爬取起来有些困难,我果断知难而退,改为对移动端的微博进行爬取,因为移动端的微博可以通过分页爬取的方式来一次性爬取所有微博内容,这样工作就简化了不少。

最后实现的功能:

  • 输入要爬取的微博用户的user_id,获得该用户的所有微博
  • 文字内容保存到以%user_id命名文本文件中,所有高清原图保存在weibo_image文件夹中

具体操作:

  • 首先我们要获得自己的cookie,这里只说chrome的获取方法。
  • 用chrome打开新浪微博移动端
  • option+command+i调出开发者工具
  • 点开Network,将Preserve log选项选中
  • 输入账号密码,登录新浪微博
  • 找到m.weibo.cn->Headers->Cookie,把cookie复制到代码中的#your cookie处

然后再获取你想爬取的用户的user_id,这个我不用多说啥了吧,点开用户主页,地址栏里面那个号码就是user_id

将python代码保存到weibo_spider.py文件中

定位到当前目录下后,命令行执行python weibo_spider.py user_id

当然如果你忘记在后面加user_id,执行的时候命令行也会提示你输入

最后执行结束

小问题:在我的测试中,有的时候会出现图片下载失败的问题,具体原因还不是很清楚,可能是网速问题,因为我宿舍的网速实在太不稳定了,当然也有可能是别的问题,所以在程序根目录下面,我还生成了一个userid_imageurls的文本文件,里面存储了爬取的所有图片的下载链接,如果出现大片的图片下载失败,可以将该链接群一股脑导进迅雷等下载工具进行下载。

另外,我的系统是OSX EI Capitan10.11.2,Python的版本是2.7,依赖库用sudo pip install XXXX就可以安装,具体配置问题可以自行stackoverflow,这里就不展开讲了。

下面我就给出实现代码(严肃脸)

本文分享自微信公众号 - CDA数据分析师(cdacdacda),作者:语亮

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-03-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 数据分析的秘密竟然在这个小游戏里!

    常有学员问,如何才能成为一名分析师?为此我写了一些日志,比如如何用EXCEL做数据处理、如何用SPSS做对应分析等等,但总感觉这些是管中窥豹,只见一斑。如何才能...

    CDA数据分析师
  • 数据挖掘duang duang duang的前世今生 兼谈社交媒体的舆情传播

    好像一夜之间,其实就是一夜之间,duang这个词火了,火得一塌糊涂。我们先来看看它火到什么程度。从今天(26日)早9:00-19:00这段时间关键词“duang...

    CDA数据分析师
  • 【惊呆了】大数据竟然还可以挖出微博抑郁患者?

    在微博上经常抱怨“去死”,或许会被甄别为抑郁患者。 近期,一项“利用社交媒体数据挖掘识别抑郁倾向人群”的研究成果在网络引发热议,来自哈尔滨工业大学的研究人员称,...

    CDA数据分析师
  • Python基础(六)——面向对象编程

      注意一点:类中自定义的方法一定要含有 self 参数,但是在调用的时候,无需为此传递参数。

    py3study
  • Java底层-GC子系统

    在HotSpot虚拟机中,三大子系统核心基本都是为运行时数据区服务,类加载子系统负责将字节码文件加载到运行时数据区, 执行引擎将执行线程中虚拟机栈的栈帧存储的指...

    每天学Java
  • 一天可抓取 1300 万条数据的新浪微博爬虫

    爬虫功能: 此项目和QQ空间爬虫类似,主要爬取新浪微博用户的个人信息、微博信息、粉丝和关注(详细见此:https://github.com/LiuXingMin...

    小小科
  • 杨瓞仁教授代理港科大CSE系主任,杨强教授期满卸任

    机器之心整理 参与:李泽南、李亚洲 据机器之心了解,原香港科技大学计算机科学与工程系主任杨强教授任职到期。2018 年 1 月份起,港科大 CSE 系由系里的杨...

    机器之心
  • 麻省理工为大数据护航,保障私人隐私不受侵犯

    大数据文摘
  • 微信跳一跳可以用 Python 刷分;macOS 再曝重大安全漏洞,或许已存在 15 年

    转自:开源中国、solidot、cnBeta、腾讯科技等 ? 如果你每次都能挑到各自的正中间的话,可以 + 2 分,如果连着跳到中间会 + 4、+6、+8、+1...

    企鹅号小编
  • 【重磅】Google开源全球最精准自然语言解析器SyntaxNet

    【新智元导读】Google Research今天宣布,世界准确度最高的自然语言解析器SyntaxNet开源。谷歌开源再进一步。据介绍,谷歌在该平台上训练的模型的...

    新智元

扫码关注云+社区

领取腾讯云代金券