Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

直击封号惨案 #17

Closed
yun17 opened this issue May 22, 2017 · 40 comments
Closed

直击封号惨案 #17

yun17 opened this issue May 22, 2017 · 40 comments

Comments

@yun17
Copy link
Collaborator

yun17 commented May 22, 2017

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

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

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

image

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

@ResolveWang
Copy link
Member

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

@ResolveWang
Copy link
Member

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

@ResolveWang
Copy link
Member

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

@yun17
Copy link
Collaborator Author

yun17 commented May 22, 2017

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

@yun17
Copy link
Collaborator Author

yun17 commented May 22, 2017

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

@ResolveWang
Copy link
Member

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

@ResolveWang
Copy link
Member

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

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

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

@yun17
Copy link
Collaborator Author

yun17 commented May 22, 2017

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

@yun17
Copy link
Collaborator Author

yun17 commented May 22, 2017

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

@ResolveWang
Copy link
Member

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

@ResolveWang
Copy link
Member

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

@yun17
Copy link
Collaborator Author

yun17 commented May 22, 2017

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

@ResolveWang
Copy link
Member

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

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

@yun17
Copy link
Collaborator Author

yun17 commented May 22, 2017

对,我觉得应该是这样的

@ResolveWang
Copy link
Member

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

@ResolveWang
Copy link
Member

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

@yun17
Copy link
Collaborator Author

yun17 commented May 23, 2017

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

@ResolveWang
Copy link
Member

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

@ResolveWang
Copy link
Member

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

@yun17
Copy link
Collaborator Author

yun17 commented May 23, 2017

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

@ResolveWang
Copy link
Member

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

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

最后说一句,兄弟辛苦了

@yun17
Copy link
Collaborator Author

yun17 commented May 23, 2017

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

@ResolveWang
Copy link
Member

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

@yun17
Copy link
Collaborator Author

yun17 commented May 23, 2017

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

@ResolveWang
Copy link
Member

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

@yun17
Copy link
Collaborator Author

yun17 commented May 24, 2017

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

@ResolveWang
Copy link
Member

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

@yun17
Copy link
Collaborator Author

yun17 commented May 24, 2017

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

@ResolveWang
Copy link
Member

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

@ResolveWang
Copy link
Member

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

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

@yun17
Copy link
Collaborator Author

yun17 commented May 29, 2017

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

@ResolveWang
Copy link
Member

那就比较尴尬了

@daxia4444
Copy link

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

@ResolveWang
Copy link
Member

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

@nerffei
Copy link

nerffei commented Jun 7, 2017

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

@ResolveWang
Copy link
Member

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

@nerffei
Copy link

nerffei commented Jun 8, 2017

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

@ResolveWang
Copy link
Member

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

@hoocok
Copy link

hoocok commented Jul 11, 2017

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

@ResolveWang
Copy link
Member

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants