照着浏览器的 request header 信息抄的 为什么爬虫运行一段时间还是 WinError 10060

2017-10-17 10:46:42 +08:00
 jin6220
很简单的一个爬虫 爬取一个不停变动的数字 显示在屏幕上
请问大家
同一个网址 为什么照着浏览器的 request header 信息抄的 复制到 headers 里
但是爬虫运行一段时间之后还是 10060:[WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。',))
用的 requestsf
6359 次点击
所在节点    Python
14 条回复
abcbuzhiming
2017-10-17 11:02:00 +08:00
很简单,不是你把 head 伪装成浏览器,对面就会真傻逼的觉得你就是真人的,识别爬虫的机制多的很,最简单的一种,楼主你的机器人有伪装请求频率吗,人类可做不到机器那么有规律的行为。
再狠一点的,js 里做点手脚,你的爬虫不执行 js,也会被发现
imn1
2017-10-17 11:13:49 +08:00
10060 是超时,跟 header 没关系
jin6220
2017-10-17 12:32:02 +08:00
@imn1 我把 timeout 设置成 60 秒了 但是要获取的那个数字几乎每秒都在变动 我估计对方发现这个请求不是真人 故不选择响应了。。。
jin6220
2017-10-17 12:38:55 +08:00
@abcbuzhiming
有啊 time.sleep(0.2) 我把这个数字改大一点试一下吧 。
因为要爬取的数字类似股票价格变化,每秒都在 变化好几次,原网页的数字应该是动态加载出来的,我按 f12 获取那个真实的地址了然后 request 请求了网址。我不知道用 requsts 直接请求真实地址的方式跟浏览器动态加载原网页出来的效果,对方能不能识别出来。
Va1n3R
2017-10-17 12:42:33 +08:00
一般都有反爬虫策略吧?比如你的频率太快了。建议上代理,或者用分布式的爬虫。
metorm
2017-10-17 12:45:47 +08:00
应该是反爬虫策略。你一秒钟按一次 F5,应该也一样会被封禁
jin6220
2017-10-17 12:49:05 +08:00
@Va1n3R 现在改成频率一秒请求下那个动态加载出来的数字的真实地址。算快吗?
但是那个网页的数字一秒钟要变化 1 到 3 次,是不是因为爬虫伪装的浏览器请求的的频率跟原装的不一致导致的。
jin6220
2017-10-17 12:57:06 +08:00
动态加载网页 ,浏览器没刷新
然后 f12 浏览器在不停的发送间隔时间不等的数字请求 反而不被禁,但是浏览器为什么会发送间隔时间随机的请求呢?难道是因为对方服务器等这个数字变化了再给浏览器发送的数据?
是不是因为这个模拟浏览器请求频率跟这个间隔时间频率不一定导致被对方发现的。
imn1
2017-10-17 13:32:01 +08:00
10060 超时是 socket 层面错误,并不是 web service 作出“对抗”响应的,它更多是网络原因造成的
ericgui
2017-10-17 13:37:40 +08:00
@abcbuzhiming 所以终极方案还是 chrome 或者 selenium 了呗?
abcbuzhiming
2017-10-17 14:45:27 +08:00
@jin6220 很明显,这是 js 轮询,对方在 js 里肯定有某些算法识别的,你没对上就屏蔽你,你遇上了反爬虫而已
abcbuzhiming
2017-10-17 14:46:02 +08:00
@imn1 不需要 web service 层,写个延时脚本直接在反向代理那把你干了就行
abcbuzhiming
2017-10-17 15:01:18 +08:00
现在基本反爬虫已经是各大网站的标配了,
有兴趣的可以看看这里:
https://zhuanlan.zhihu.com/data-factory
楼主很明显缺乏一些基本概念,还是不要尝试这种关键数据,我说个很简单的方法,如果你要求不高的话,对这个场景最合适的做法是:自己写油猴脚本配合 chrome 抓取,保证没问题;或者上无头浏览器;研究 js 是不归路,不是对 js 造诣很深的人,都不建议去整,混淆就能玩死你,上个 eval 就能让你欲仙欲死,等你好不容易研究出来了人家改个方式你又完蛋,js 反反爬虫是逆向破解,最大的好处是你的 js 水平会曾指数级上升
jin6220
2017-10-17 17:52:06 +08:00
@abcbuzhiming 嗯 谢谢 这就去看看

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

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

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

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

© 2021 V2EX