aa233322aaa
V2EX  ›  Java

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

  •  
  •   aa233322aaa · Apr 5, 2015 · 3220 views
    This topic created in 4097 days ago, the information mentioned may be changed or developed.

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

    7 replies    2015-04-09 16:59:13 +08:00
    kslr
        1
    kslr  
       Apr 5, 2015
    兵来将挡,水来土掩
    eycfsjd
        2
    eycfsjd  
       Apr 7, 2015
    对一个网站,假设100个ip,一个ip 1s一个网页,一天8w,100个ip一天就是800w了。假设N个网站,一个ip一秒100左右(N个网站轮转),那么一天就是800w了,10个ip一天就是8000w了。假设一个网页平均50kB那么每秒流量就是100*50kB= 5MB;多整点代理ip吧
    aa233322aaa
        3
    aa233322aaa  
    OP
       Apr 8, 2015
    @anexplore 我还有点疑问,1.代理IP的的有效时间,一般代理IP的有效时间不是很短吗?2.同一个IP爬取一个站点,在一定时间内要是数量过多的话 不是会被封吗?
    eycfsjd
        4
    eycfsjd  
       Apr 8, 2015
    @aa233322aaa 搞一个代理失效验证机制,验证通过推送给下载端;下载端动态更新代理;一个站点的dns可能会对应若干个ip,所以要轮转访问站点的若干ip,减小被封的概率;1s或者几秒访问一个站点一次,一般不会被封掉的;
    aa233322aaa
        5
    aa233322aaa  
    OP
       Apr 9, 2015
    @anexplore 谢谢你的解答,我还有些疑问。。。我要怎么知道这个站点的其他IP?通过浏览器访问看连接详情吗?还有假设我4S一次访问的频率 ,那一天也有2W次的量,这种数量一般不会是人为点击的吧。。那些反爬虫严格一点的网站不会封吗?如果加大访问间隔 是不是需要用多台服务器 开多线程来保证量?
    eycfsjd
        6
    eycfsjd  
       Apr 9, 2015   ❤️ 1
    @aa233322aaa
    1.解DNS自然就知道网站的IP是什么,而且在不同地狱解析同一个网站的DNS可能还是不一样的;
    2.要遵循robots协议;控制频率;也可以控制时间段,比如晚上访问量少的时候爬;被封掉就让频率更小;反爬虫很严格的站点毕竟还是少数;
    3.一般一个服务都只有一个外网ip,所以要用多ip自然得多个服务器了。
    这些东西多试一试就知道了。。。
    aa233322aaa
        7
    aa233322aaa  
    OP
       Apr 9, 2015
    @anexplore 谢谢,我再去试试
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5632 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 01:43 · PVG 09:43 · LAX 18:43 · JFK 21:43
    ♥ Do have faith in what you're doing.