开源一个豆瓣用户广播爬虫

博主分享了一个开源的豆瓣广播爬虫项目,用于抓取用户的听说读看四部分内容,以JSON格式存储,便于后续处理。项目包含恢复抓取功能,通过配置文件跟踪进度,并提供二次开发建议,如验证码识别、代理池和加速策略。需要运行代码时,需配置Cookie和用户列表,遇到验证码可自行扩展处理。
摘要由CSDN通过智能技术生成

应不住读者的请求,打算新开一个豆瓣系列的爬虫,主要是为了爬取豆瓣的小组和用户信息,并且全部开源出来。

今天这篇主要是分享豆瓣用户广播爬虫,可能还是有不少同学对豆瓣广播不熟悉的,看下图就很清楚,豆瓣的广播有点类似于 QQ 空间的说说,但是多了一些豆瓣自己的元素,比如,”在看“、”在读“,”听过“ 这些 Action。

在这里插入图片描述

抓取的主要内容是广播里的听说读看这四部分(不包括转发的内容),但是听这一个又包括在听,想听,听过等,所有种类比较多,同时字段又不规则,所以本次保存的文件形式不再是 csv,而是 json;我个人理解,csv 文件对应 mysql 等结构化数据库,json 文件对应 mongodb 等非结构化数据库,如果想改成 mongodb,在后文获取代码修改保存文件的函数即可;对于开源的东西,我倾向于使用 csv/json 文件形式保存数据,一是配置少,二是直观。这份代码运行保存的结果如下

在这里插入图片描述

整个项目的仓库地址是

https://github.com/Python3Spiders/DouBanSpider

下面主要讲讲如何定制化使用和二次开发。

这份代码需要跑起来,首先需要一个配置文件 user_config(git 仓库里就有),其格式如下

{
  "users": [
    "https://www.douban.com/people/G16022222",
    "https://www.douban.com/people/170796758"
  ],
  "cur_user_index": 0,
  "cur_user_cur_page_index": 31
}

users 就是你想爬取的用户主页列表,这个直接去豆瓣网复制就可以得到;为了避免每次都要重新开始抓取第一个用户,字段 cur_user_index 就是为了保存上一次已经抓取到哪一个用户了,下次可以直接继续,这个保存是程序自己完成了,没有特殊需要不用人为改动;爬虫是基于翻页的,cur_user_cur_page_index 保存了当前抓取的用户翻到哪一页了,和 cur_user_index 组合起来就可以使用更细粒度的恢复抓取。

另外一个是需要在 py 文件中修改 Cookie,在 F12 Chrome 开发者工具中打开 Network 栏,过滤 urlPath 的关键词 statuses,复制过滤后的请求的 Cookie。

在这里插入图片描述

程序设计了每翻页一次休眠 3 s,测试发现运行过快会导致下面的结果而导致程序中断,这也是我为什么设置恢复抓取逻辑的原因之一,只要在网页打开豆瓣输入验证码,重新运行就能恢复抓取。

在这里插入图片描述

开源的代码是最小可行性产品;比如出现验证码,可以二次开发个验证码识别程序自动化;为了防止出现验证码,可以自己构建代理池(一般免费的代理质量不高),或者付费买代理 ip,无非就是构建服务,给请求添加 proxies 参数即可;为了加快速度,可以使用线程池,协程等;凡此种种,皆不是本开源爬虫的本身,定位只是一个豆瓣备份工具而已;大家可以二次开发。

开源的目的是为了方便大家使用,有疑问请在 git 仓库上提 issues ;同时一起贡献这份爬虫代码,有觉得代码设计逻辑可以改进的或者有 bug 的,欢迎提 pull request

欢迎体验,吐槽。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

月小水长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值