V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
bighead22
V2EX  ›  Python

如何让爬虫一天抓取 100 万张网页

  •  
  •   bighead22 · 2019-05-13 17:20:44 +08:00 · 4809 次点击
    这是一个创建于 2028 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大规模数据抓取好文分享一篇,文章对设计一个单机定向日抓取百万网页的爬虫,进行了较为细致的阐述。 对日抓取百万量级,合计一亿张网页的爬虫, 在内存策略,硬盘存储策略,海量数据去重,网络性能优化方面给予了实操性很强的方案。 https://www.yuanrenxue.com/crawler/high-performance-crawler.html

    19 条回复    2019-05-16 16:04:03 +08:00
    deepall
        1
    deepall  
       2019-05-13 17:33:35 +08:00
    大佬大佬
    est
        2
    est  
       2019-05-13 17:36:21 +08:00
    > 不过奇怪,bloom 里没有公有方法来判断 URL 是否重复,我用的__contains__()方法,也可能是我没用对,不过判重效果是一样的。


    大佬大佬。
    Northxw
        3
    Northxw  
       2019-05-13 17:38:15 +08:00
    给大佬递咖啡
    bighead22
        4
    bighead22  
    OP
       2019-05-13 17:43:00 +08:00
    @Northxw 瑞幸 哈哈
    laucie
        5
    laucie  
       2019-05-13 17:49:52 +08:00
    给大佬捏腿
    shyrock
        6
    shyrock  
       2019-05-13 19:27:47 +08:00
    围观大佬,学习 ing
    CloudMx
        7
    CloudMx  
       2019-05-13 21:18:21 +08:00
    Ping 没必要发送四次,可以自主设置。
    Win: -n NUMBER
    Linux: -c NUMBER
    strugglexiang
        8
    strugglexiang  
       2019-05-14 09:24:19 +08:00
    递咖啡
    zarte
        9
    zarte  
       2019-05-14 10:09:34 +08:00
    说两点用 go 来替代,你那去除不需要的页面头部功能效率提高 n 倍,除非能不用 chrome 的驱动自己实现一套才有可能比别人开发的效率高。
    bighead22
        10
    bighead22  
    OP
       2019-05-14 11:32:05 +08:00
    @CloudMx 是的,这个方法可以
    liuxu
        11
    liuxu  
       2019-05-14 11:38:11 +08:00
    直接提取内容比直接拿 body 更好吧,body 里面有很多不需的 html 标签
    foolisheddy
        12
    foolisheddy  
       2019-05-14 12:50:42 +08:00 via iPhone
    分析详尽,学习了!
    bighead22
        13
    bighead22  
    OP
       2019-05-14 14:09:19 +08:00
    @liuxu 嗯,也可以这样。根据项目的选择来。 有的需要原始数据。另外直接提取有可能某些 html tag 确实 或者匹配规则没考虑周全,可能会大面积出现提取错误
    caneman
        14
    caneman  
       2019-05-14 14:47:03 +08:00
    如果单 IP 你爬不了 100+就被 ban 了,效率直线下降。
    AmberJiang
        15
    AmberJiang  
       2019-05-15 10:40:20 +08:00
    谢谢大佬分享 学习了 最近也正卡在这里
    bighead22
        16
    bighead22  
    OP
       2019-05-15 10:49:56 +08:00
    @caneman 反爬不错的网站,单 ip 爬不到这么多次。 降低单 IP 的单位时间抓取次数,有可能爬这么多。 但是这样单 IP 的抓取效率就太低了
    caneman
        17
    caneman  
       2019-05-15 17:39:15 +08:00
    @bighead22 靠 ADSL 拨号来切 IP,可能有一部分站在完美的理想状况下确实按你的方法能达到日抓百万。

    但是大多数能够产生有利用价值数据的网站,这种方法都不太能实现单机日抓百万,

    IP 切换开销 6S 一次,太久了。。
    dtjydsre
        18
    dtjydsre  
       2019-05-16 00:02:35 +08:00
    学习了

    最近就在爬一个网站,大概有 1 亿个网页
    感觉主要限制还是在于网站的反爬,而且它的反爬是一封就封 2-3 个月的那种
    考虑稳定可靠,买了动态 IP 地址池,一个月 1000 块的样子
    代理限制了最大 40 的 QPS,一天能爬差不多 300 多 W 的页面下来
    foxyier
        19
    foxyier  
       2019-05-16 16:04:03 +08:00
    get,tks
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   918 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:39 · PVG 05:39 · LAX 13:39 · JFK 16:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.