微博评论/话题爬虫更新,用户爬虫仍可用

文章目的是为了学习分享,严禁将代码和所得数据商用,如追究责任概不负责。git

微博爬虫终于又又又更新了。github

此次主要有三件事,且听我一一道来web

微博评论爬虫更新

突破了 100 页、130 页的限制(20200224 亲自尝试过 1 w+ count),可抓取指定微博的全部评论浏览器

代码文件是 WeiboSuperCommentScrapy.py ,其在微博爬虫项目 Github 仓库的位置以下:微信

代码须要改动的地方主要有三处,你的微博帐号,密码和你想要爬取微博的 idcookie

爬取的微博评论会以 csv 文件的格式保存在项目 comment 文件夹下,文件名为 {id}.csv,如已运行过一次,可将学习

WeiboLogin(username, password, cookie_path).login()spa

这一行代码注释掉,这一行代码就是为了自动获取 cookie 的,如发现 cookie 过时可取消注释。.net

自动获取 cookie 的代码来源于一位简书做者 https://www.jianshu.com/p/8dc04794e35f线程

而后问题就在于怎么找到你想要爬取微博的 id,爬取的是手机 m 站(https://m.weibo.cn),举个例子,好比咱们想爬取热门中的这条微博的全部评论

点开图中红线圈中的那个评论图案,这个时候在浏览器地址栏上就能看到微博id

如你所见,微博 id 就是那一串数字,复制到程序中进行替换便可,若是想要一次性爬不少个微博的评论呢,能够把变量 id 改为 list 类型,也能够从配置文件读取,而后开个线程池便可,这些小的改动因为每一个人须要不同,你们本身动手改改就行。

from concurrent.futures import ThreadPoolExecutor
for id in ids:
    ThreadPoolExecutor.submit(start_crawl,(get_cookies(),id))

运行代码后,若是

WeiboLogin(username, password, cookie_path).login()

未取消注释,将会弹出验证码,手动在控制台输入便可,该爬虫能够爬取一条微博下全部的评论及评论的回复,如发现评论爬取完毕,可手动关掉程序,否则会一直尝试,这个小 bug 在我写文章时才发现,代码已 commmit 到 github 了,不过不是什么大问题,下次补上。

微博话题爬虫更新

上一版的微博话题爬虫就能支持按时间段爬取了,不过必须是以今天为结束点,这一版的能够支持任意时间段了:

WeiboTopicScrapy(keyword='巴黎圣母院大火',filter=0,start_time='20190414',end_time='20190515')

keyword 即爬取的话题,filter = 0 爬取全部微博,filter = 1 只爬取原创微博,start_timeend_time 便是微博发布时所处的时间段。不能支持 时、分、秒等颗粒度搜索。

注意话题爬虫和评论爬虫相互独立,话题爬虫仍然须要设置 cookie,不知道怎么设置 cookie?请参见我之前的文章:微博全站爬虫修复更新啦!!!

用户微博爬虫仍然可用

很多同窗反馈爬取指定用户的微博爬虫失效了,并且都是 decode/encode 啥的错误,我本身又试了好几回,发现仍然可用,99% 的缘由是 cookie 设置错误了。

至于 用户微博爬虫 的 exe 版本,我没试了,我在上一次更新就说过,再也不维护 exe 版本,请你们运行代码,Python 零基础的同窗如发现 module not found,自行安装第三方库便可。

点击阅读原文直达项目 Github 地址。

本文分享自微信公众号 - 月小水长(inspurer)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索