夜恋社区

 找回密码
 立即注册
查看: 911|回复: 0
打印 上一主题 下一主题

爬虫访问中通过http代理ip解决网站限制IP

[复制链接]
跳转到指定楼层
楼主
发表于 2017-1-19 17:54:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        之前由于公司项目需要,采集过地图数据,还有一些大型网站数据。
        经验如下:
        1.代理IP必须需要, 说的非常正确,ADSL。如果有条件,其实可以跟机房多申请外网IP。
        2.在有外网IP的机器上,部署代理服务器。
        3.你的程序,使用轮训替换代理服务器来访问想要采集的网站。
        好处:
        1.程序逻辑变化小,只需要代理功能。
        2.根据对方网站屏蔽规则不同,你只需要添加更多的代理就行了。
        3.就算具体IP被屏蔽了,你可以直接把代理服务器下线就OK,程序逻辑不需要变化。
        最早是想通过代理,买一些代理IP。
        比如免费的http代理 http://www.xicidaili.com  上面提供了很多国内的代理IP服务器地址。可以从这边抓取http代理。
        后来就用ADSL了,这个办法有个不好的地方就是他要断网,再拨号,断网过程爬虫是空跑的,如果你对数据实时性要求特别高,需要好好规划一下程序。
        ADSL另一个不好的地方是服务器厂商似乎都是小作坊,不稳定,找到一个秒拔秒变,又长期稳定的合作伙伴也是很重要的。
        按照你的说法,平均2秒访问一次,即遭封锁代理服务器IP地址,因此只有降低抓取速度,但是又有总量和时间的限制。有个问题:如果我平均2秒多一点访问一次,是否可以永远不被封锁?对方网站的封锁策略你是否都摸透?
按照现有条件,假设封锁条件唯一,那1万页,30分钟,平均一秒种的量是5.56次。
如果不考虑动态调度的话,那你可以设置至少6条线路来完成抓取(更正一下,应该是至少12条线路,时间仓促,计算失误)。
        单线的数据回传照这个条件看起来,代理IP根本没有压力,可以在抓完一页,休息2秒的时间内,完成数据提交。
如果的确是这样的话,你可以考虑用同事家的电脑代理IP,只要开机,运行你的程序即可。适当补贴电费就可以。
如果同事这条路走不通,比较便宜的可以租用阿里云的代理服务器机器,HTTP代理很便宜,WIN 1000多一年,Linux便宜的才几百。(当然我们也遇到过整个云都被封锁的情况,毕竟IP段相对固定)
        终极解决方案就是拉几条电信的ADSL线路代理IP,光纤和电话线都可以,拨号就用CMD方式就可以了。
1000多1年,光纤10M,电话线4M,自己再买几台机器放过去就行了。
        以上仅供参考。


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|夜恋社区  

GMT+8, 2024-11-21 18:56 , Processed in 0.027556 second(s), 22 queries .

Powered by Discuz! X3.2

© 服务邮箱 [email protected]

快速回复 返回顶部 返回列表