SpiderClub / weibospider

:zap: A distributed crawler for weibo, building with celery and requests.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

直击封号惨案

yun17 opened this issue · comments

commented

*. redis里录了3个手机注册过的账号
*. 开了10个节点,等待时间1-3s,线程15(穷逼一枚,用按量付费1h一毛多的那种)

开了几个小时都没问题
再加了几个节点就死了,大概是一个cookies有访问限制,关掉多的节点立马正常
想着再加个账号
然后在繁忙的节点上模拟登陆

就登了一个账号,那三个账号就被封了

image

所以应该考虑一个主机短时间内使用3个cookies

你三个账号能跑几个小时?每个节点15个线程?

封号那点我没看懂,你的意思是一个被限制访问了,其他都被封了吗?

那么你再用别的账号在那些IP上能登录吗?

commented

不是,我的意思是,一个ip上登陆了4个cookies,而且时间间隔很短会导致封号可能

commented

可以的,过了一小段时间后,模拟登陆正常

大概是一个cookies有访问限制,关掉多的节点立马正常这句话什么意思啊?

想着再加个账号
然后在繁忙的节点上模拟登陆

就登了一个账号,那三个账号就被封了

这几句话我也不是很懂。我对你的发现比较很感兴趣,我前几天也是,60多个账号,爬了三个小时,然后突然一瞬间,全部被封

commented

一个cookies 它单位时间内能请求的次数有限,增加节点后加速访问,然后所有节点都飘红,我关了多加的,然后其他的节点都恢复正常

commented

应该是微博对一个ip上同时登陆的cookies有比较严格的限制,而对cookies在不同ip上同时出现并没有做什么限制。

你三个账号等级高吗?是不是会员?微博对一个ip上同时登陆的cookies有比较严格的限制这句话的意思我也没怎么理解

我以前60个账号三个小时就被封了,而且也还没你那个访问量那么大啊?我这点不是很明白

commented

一元三个的那种,有手机注册过。
就是您的爬虫频繁的切换cookies来请求页面,当速度较慢的时候应该没什么问题,如果速度较快应该就会被微博封锁。
之前我买高级号的时候卖家有提示过一台机子不能多登,封号不负责
还有一则参考
http://jingyan.baidu.com/article/456c463b648d3c0a5931445f.html

我再来确认一下你的意思:

  1. 同一个cookie对于微博系统来说,在单位时间是有访问限制的,不管它位于哪个ip
  2. 同一个ip同时拿来进行请求的cookie数也是有限制的
commented

对,我觉得应该是这样的

嗯,我觉得我们要是能找到一个比较合理的阈值,就大概差不多了

兄弟,对这个研究有进展,要及时分享和交流啊,我现在估计形成定时思维了,拿捏不准微博的封号机制

commented

早上7:03-10:43 三账号 4节点 10线程 被封ㅍ_ㅍ
下次放一个账号试试

我发现大概都是3到4个小时被封

这个issue我们一直开着吧,有兴趣的都可以测试一下

commented

19:55-20:44 又被封了一个,中间还停机了10分钟。
5个节点,10进程,这次用的是1元三个的号

嗯,大概就三个小时左右,访问快了必被封。可以试试那种1块钱20个的高危号能不能坚持到3个小时。如果可以的话,对于大规模数据抓取,成本又小了一些了。

现在被封了后ip被封了没?能不能复现上次被封ip的情况。

最后说一句,兄弟辛苦了

commented

啊啊啊,我脑子秀逗,写错了。是19:55。 ip可能有问题,我自己也晕😵。
另外我的请求主要涉及用户详情页和转发

半个小时就把一元三个的其中一个账号封了?三元一个的貌似3个小时才被封了啊?不知道我理解都对不对。
高危号也可以看看,能撑多久

commented

可能是节点开的多的原因。等按量付费的过期了,我再看看四节点的情况。之前三个一元三个的号也差不多三小时

嗯嗯,我觉得我们现在从功能上来说,关于和微博相关的数据抓取的代码都实现得差不多了,现在主要就是如何以较低的成本获取较大的数据了

commented

21:04-21:59 5个节点
21:59-22:37 4个节点(任务正常结束,账号正常)
今天早上发现账号被封。
也就是,一个时间段内,如果账号有异常都会被封,不会因为休息了段时间而免除

我觉得微博它会延迟封号时间,在一段时间内它检测到你的账号异常,然后过一些时间再给你封掉。比如你昨晚账号正常,今早上就被封了。这个延迟的时间大概就是2到3个小时。我当时还有个想法,有的时候微博觉得你账号异常会弹出验证码,让你再访问,这种情况比较好解决,但是我还不清楚会不会还有情况,就是直接要手机验证,这种就不好解决,还是说手机验证是因为在弹出验证码的时候,我们没及时验证,他就认为你是个机器人不是人,就让你手机验证。

commented

不太清楚,没见过验证码😅

我见过,就是不好复现这东西。我以前复现的时候是,验证码验证了过后,还会让用手机再验证一次!

意外发现我的微博被封了,要申诉的那种。。。我绝对没有用自己的微博爬数据,我也就是在我的电脑上看看那些被封的微博的是个什么情况而已🙂。果然乱换账号要炸

这个issue咋不在了?
这个发现有点意思,你的意思是你电脑在跑程序,但是你自己也在电脑上用自己的微博账号访问微博系统,结果把你的机器账号和自己的账号都给封了?

commented

没没,发现自己弄错了。我用自己的账号访问的是封号界面。就是个乌龙😅

那就比较尴尬了

以前测试过,买过15级账号测试,结果一样,目测1个账号一天微博限制最少是2000左右限制,当然每个页面的限制次数不一样,你只抓微博,限制大概是6000,你抓用户信息,2000就限制了,输手机号和图片验证码,12306那种图片验证。

验证码问题不大,我自己在实验的时候用打码平台实现过。主要是要用手机号验证。这点很蛋疼。感谢提供宝贵信息。现在大规模抓取只有用下策,每次用一个低质量账号高频率抓取,两到三个小时失效了自动切换

我在淘宝上买的号,用的是内存跑浏览器的登录方法,一次性登录40个账号,竟然没问题。但是第二天很多账号封了

是的,如果一次性登录多个账号的话,需要把账号分布到不同ip去登录,并且同一ip不同账号登录需要设置一定的间隔,并且微博封账号会有一定时间的延迟。别说40个账号了,我用20个账号去登陆,同一个ip,没有设置登录间隔,都会被认为操作是异常的。感觉微博系统它会把账号异常设置为不同等级,比如最轻的就是,不管是不是常用地登录,都给你弹验证码。最厉害的就是直接让你用手机号验证,但是同一手机号也只能验证少数几个账号。这样的话,一般很多账号就废了

我感觉搞账号好麻烦。。。 我一直都是不登录,频繁切换代理爬的。反正能满足业务😆

讲讲你的方法呗。我记得好像大多数信息都需要登录才能爬取啊,你不登录是爬取什么信息?怎么爬取的?

“用的是内存跑浏览器的登录方法”, selenium ?

不是,代码和文档都有体现,麻烦先看代码或者文档,再提问