对于需要验证的爬虫问题

2015-07-14 10:57:20 +08:00
 aragakiiyui

最近写一个爬虫,根据输入的关键字抓取某电商网站的搜索结果。实际应用时估摸着请求了5、6次,然后便直接跳转到登录页面,需要登录才能进行抓取,所以就只能登录再抓了。
可是我很好奇,这种验证机制背后的原理是什么?!有大神能够解答一番嘛,不甚感激!

5220 次点击
所在节点    Python
31 条回复
latyas
2015-07-14 11:07:51 +08:00
233 难道是淘宝
crayygy
2015-07-14 11:11:30 +08:00
233不要测试淘宝
注意友好
wind4
2015-07-14 11:24:14 +08:00
referer、cookie、csrf、请求间隔……只想到这么多
socrates
2015-07-14 11:28:09 +08:00
@wind4 再加上user-agent,有些网站会检查一些http的header特征,看看是否是爬虫
est
2015-07-14 11:34:03 +08:00
2333 最弱的反爬虫手段。
frankzeng
2015-07-14 12:06:41 +08:00
加上user-agent,然后随机暂停一下
akira
2015-07-14 12:10:20 +08:00
同一IP短时间内访问次数,这个限制也蛮常见的
ZzFoo
2015-07-14 12:35:19 +08:00
@latyas
@crayygy
@est
有什么梗嘛?
ljcarsenal
2015-07-14 12:36:57 +08:00
据说taobao有复杂的检测模型。。。不光是上面提到的那些
aragakiiyui
2015-07-14 14:24:23 +08:00
@latyas @crayygy 其实是一淘
aragakiiyui
2015-07-14 14:28:43 +08:00
@frankzeng 就是会有大量的请求啊。。不然我也乐意停一停,不过也太吊了,请求几次就要登录了。。
aragakiiyui
2015-07-14 14:33:11 +08:00
@est 该如何是好。。。
aragakiiyui
2015-07-14 14:35:51 +08:00
现在是14:35分,我又能搜了。。我直接F5手动刷新。。若干次后,又直接跳转登录页面了。。
nullcc
2015-07-14 14:40:24 +08:00
这种类似CC攻击的请求是有可能被拦截的,内部验证机制可能会相当复杂,user-agent,referer这些的有可能会去验证,还有就是CC攻击几乎是一些纯粹的页面攻击,大多并不会去请求这个页面所加载的一些其他文件,有一种做法是去查看某个IP在加载某页面时是否还加载了相关文件,但从防护角度来说这个方法是相当复杂的。
nullcc
2015-07-14 14:47:40 +08:00
尽管有各种验证机制,就算能绕过,但同个IP过于频繁的请求还是有可能被加入黑名单
aragakiiyui
2015-07-14 14:52:37 +08:00
@nullcc 那估计只能不停换ip去访问了。但是有什么简单的办法确定何时换ip?
paw
2015-07-14 15:00:16 +08:00
打开chrome ,右键 审查元素, 打开淘宝 搜索
然后把chrome发出请求的全部头和cookies都添加到爬虫去。。
nullcc
2015-07-14 15:04:05 +08:00
@aragakiiyui 除非能知道对方的计算方式,如果不怕累的话,不断累加请求去发。。
imn1
2015-07-14 15:11:32 +08:00
很明显大数据检测出不是“常用设备”
latyas
2015-07-14 15:48:59 +08:00
淘宝估计是各URL有相应的单位时间访问次数限制,这个单位时间不是1s,可能是一段时间,并且全天各时间段都不一样,然后按照行为给予客户端惩罚值,超过了就要输验证码,然后这个阈值会提高,再次达到时又要输验证码,再次提高,有点像E绅士,233

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/205548

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX