关于网络爬虫 中遇到的一些问题

2015-04-05 14:53:31 +08:00
 aa233322aaa

最近在学习爬虫,用的是Java
但是在抓取某个站点的时候ip一直被封,于是去网上爬虫了一些代理IP 但是效果不理想
我想问一下 针对各别站点 如果每天要访问上百万次 这种情况要怎么办?
我看一些文章 他们几百个IP 就能解决,但是 单个IP 一定时间内访问次数过多 应该会被封吧
像那些 每天抓取几千万 甚至上亿数据 他们是怎么做到的? 用的adsl 拨号吗 ?
最主要是他们怎么 做到不被封IP
有没大大指点一下

2685 次点击
所在节点    Java
7 条回复
kslr
2015-04-05 18:55:18 +08:00
兵来将挡,水来土掩
anexplore
2015-04-07 18:42:46 +08:00
对一个网站,假设100个ip,一个ip 1s一个网页,一天8w,100个ip一天就是800w了。假设N个网站,一个ip一秒100左右(N个网站轮转),那么一天就是800w了,10个ip一天就是8000w了。假设一个网页平均50kB那么每秒流量就是100*50kB= 5MB;多整点代理ip吧
aa233322aaa
2015-04-08 16:37:26 +08:00
@anexplore 我还有点疑问,1.代理IP的的有效时间,一般代理IP的有效时间不是很短吗?2.同一个IP爬取一个站点,在一定时间内要是数量过多的话 不是会被封吗?
anexplore
2015-04-08 21:14:09 +08:00
@aa233322aaa 搞一个代理失效验证机制,验证通过推送给下载端;下载端动态更新代理;一个站点的dns可能会对应若干个ip,所以要轮转访问站点的若干ip,减小被封的概率;1s或者几秒访问一个站点一次,一般不会被封掉的;
aa233322aaa
2015-04-09 09:47:56 +08:00
@anexplore 谢谢你的解答,我还有些疑问。。。我要怎么知道这个站点的其他IP?通过浏览器访问看连接详情吗?还有假设我4S一次访问的频率 ,那一天也有2W次的量,这种数量一般不会是人为点击的吧。。那些反爬虫严格一点的网站不会封吗?如果加大访问间隔 是不是需要用多台服务器 开多线程来保证量?
anexplore
2015-04-09 10:39:57 +08:00
@aa233322aaa
1.解DNS自然就知道网站的IP是什么,而且在不同地狱解析同一个网站的DNS可能还是不一样的;
2.要遵循robots协议;控制频率;也可以控制时间段,比如晚上访问量少的时候爬;被封掉就让频率更小;反爬虫很严格的站点毕竟还是少数;
3.一般一个服务都只有一个外网ip,所以要用多ip自然得多个服务器了。
这些东西多试一试就知道了。。。
aa233322aaa
2015-04-09 16:59:13 +08:00
@anexplore 谢谢,我再去试试

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

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

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

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

© 2021 V2EX