按照作者采集百家号主页下面的文章,问题和解决方法

大家好,我是淘小白!

近日,帮一个朋友写了一个Python的脚本,采集的是百度百家号作者的数据,在采集的时候遇到了一些问题,今天来汇总整理一下。

1、百家号作者列表

我们要采集作者主页的数据,首先就得是解决列表数据隐藏的问题,列表数据隐藏做的反爬,直接影响到我们能不能做批量采集。

抓包可以抓包数据包,也不麻烦,但是多次抓包之后,发现不到规律变化,这个地方头疼了一阵,后面分析分析着,就发现一个参数变化会直接影响到返回的列表数据。

这个参数是ctime=,这个字段值会影响到返回的数据,抓包到这条网址之后,在这个json包的页面下面,有这个参数,就是下一个列表的参数值。

也就是第一页中的 ctime参数,调用到第二页的json网址中,就会返回第二页的数据,这样无限迭代下去,不是真正意义的无限迭代下去,如果这个参数返回0 或者返回null,就会没有数据了。

2、内容页采集

使用Python采集的话,直接做网址请求,然后做数据提取就可以了,但是提取多了会存在一个问题,反爬的问题,一旦出现反爬,会存在下面两个特征:

2.1 ctime这个参数返回null,出现这个可能就是存在内容页请求的反爬了;

2.2请求网址存在卡顿情况,没有反爬的情况下,数据会哗哗的出,一旦出现卡顿或者数据量偏少的情况,就是出现反爬了。

因为我是给客户做的脚本,我这边测试哗哗出数据,但是客户那边老是卡顿出不来数据,经过1个多小时的测试,发现单独请求内容页网址的时候,title这个标签出现‘安全验证’字样,这就是出现反爬了。

3、请求列表也会存在反爬

我们请求列表的抓包网址时,也会存在反爬的情况,这时,我们只需要把请求头换成百度蜘蛛,反爬就会明显降低。请求头尽量不要用浏览器的请求头。

4、使用Python selenium库驱动浏览器采集

给这个朋友做的脚本,我已经封装打包起来了,自己用的还是比较顺畅的,因为直接爬取的源码,速度比较快,这个朋友采集的时候,可能使用频率比较高,导致出现了严重的反爬情况,本想着提取滑块验证之后的cookie,但是浏览器一直触发不到这个滑块,测试的心累。

然后,就推倒重新写代码,更换爬取方式,直接驱动浏览器爬取数据;驱动浏览器,爬取速度是比较慢的。如果求稳的话,可以考虑这种方式。

5、驱动浏览器测试时遇到的问题

本想着对列表页做浏览器驱动采集,内容页爬取源码,能够降低反爬,是我太天真了,后面还是会触发,然后后面直接全部改成,驱动浏览器采集列表数据,然后直接再驱动浏览器采集内容页网址。

这样驱动浏览器时,尽量使用无痕模式驱动,还要注意增加延时,速度太快,可能跟不上响应。

驱动浏览器时,滑块验证出现要及时进行验证,速度慢一些,可增强稳定性。

如果有需要定制Python爬虫脚本的朋友可以❤ TXB2196

总结:按照作者采集百家号的文章,最主要的就是反爬问题,使用代理能不能过反爬,这个暂时没有测试。通过直接爬取源码的方式采集,速度快,但是不稳定,使用模拟浏览器的方式,速度慢,但是稳定一些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

淘小白_TXB2196

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

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

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

打赏作者

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

抵扣说明:

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

余额充值