-
Notifications
You must be signed in to change notification settings - Fork 1.2k
微博爬虫被封详细信息记录
resolvewang edited this page Jul 9, 2017
·
16 revisions
日期 | 微博账号数量 | 抓取间隔 | 节点数量 | 一共请求的页面数 | 结果 |
---|---|---|---|---|---|
2017/05/07 16:14 ~ 2017/05/07 23:57 | 5 | 4 | 4 | 这个忘了记录,尴尬 | 所有账号被封,在登录的时候需要验证码,访问用户信息的时候也需要(下次被封要注意看能不能访问微博信息,从而得知用户信息的约束是否比微博信息严格) |
2017/05/08 13:00 ~ 2017/05/08 16:20 | 6 | 5 | 4~7 | 16395 | 所有账号被封 |
2017/05/08 18:40 ~ 2017/05/11 14:25 | 6 | 15~18 | 3(两个用户抓取,一个粉丝和关注抓取) | 38391 | 几乎所有账号都正常,个别账号异常,应该是随机账号的时候算法不是很公平导致的 |
2017/05/18/ 18:00 ~ 21:00 | 60 高危号 | 0~2秒,每台机器8个线程 | 4(两个用户抓取,一个用户和粉丝抓取,一个粉丝和关注抓取) | 10.1w | 大概到晚上九点的时候,所有账号几乎同时被封了,我觉得可能是ip出了问题,下一次尝试运行两个小时就停止程序,然后再等几个小时候看账号是否正常 |
重要说明:由于现在项目出现了稳定模式和极速模式两种运行模式,所以大家根据自己的需求进行选择,上述被封的记录已经没有多少参考意义了。稳定模式的话,适用于数据量不大,需要每天都进行一些定时搜索或者采集的场景,极速模式适用于突然需要大量数据,这种模式下,账号很可能会被封掉。当然如果你是土豪,有成千上万的账号和不少的高质量ip,也可以使用普通模式进行快速的数据采集。
其它一些关于微博反爬虫系统的相关知识
- 如果账号被封了,手动解封的时候除了做登录验证以外,为保证正常,建议访问一下其他用户的信息,因为可能还会进行一次验证
- 微博反爬虫系统对微博用户详细信息保护比微博用户粉丝和关注页面保护更加严格
- 在做大规模登录的时候,尽量分散ip进行登录,并且同一ip两个相同账号登录应该有一定时间间隔,否则ip会被微博系统认为是异常ip
- 通过网友 yun17大量实验,发现一个账号大概可以同时在五个节点(不同ip)进行访问,并且一般大概是3个小时左右微博系统会封一次号。IP被封后半个小时左右会解封。
经过多次试验,发现在微博数据采集中,对微博搜索是限制最为严格的,某些等级低的账号甚至不能进行搜索;其次是具体微博用户信息,需要登录才能查看具体信息,再其次是微博具体信息和各种ajax请求,比如用户关注/用户粉丝,微博评论/微博转发等,这些需要用户的一些cookies才能查看(非全部cookies),至于需要哪些cookies字段目前还没去研究。单位时间内的搜索阈值限制也差不多是按这个顺序进行限制的。