推荐学习书目
› 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
tao1991123
V2EX  ›  Python

求爬虫爬一个大型天涯帖子的加速办法

  •  
  •   tao1991123 · May 29, 2015 · 7465 views
    This topic created in 4179 days ago, the information mentioned may be changed or developed.

    背景

    天涯有一个帖子,作者在上面更新自己的某部小说。持续更新了好几年。前两天通过作者的微博得知更完了,但是由于更贴时间太长,这个帖子的灌水回复太多,现在已经有2500多页(注意不是2500楼,是2500页)。

    问题

    现在希望把作者的内容通过爬虫爬下来,保存为TXT。以前y用Python写过一个爬天涯的爬虫,为了防封IP用的是最笨的办法

    time.sleep(1)

    小贴很好办,但是这个2500楼的帖子,真心等不起。

    请求

    求一个可以快点把帖子爬完的办法

    26 replies  •  2015-05-31 11:57:21 +08:00
    WeeH9T
    WeeH9T
    May 29, 2015
    1
    http://www.tianyatool.com/ 只看楼主,再抓呗。。
    tao1991123
    tao1991123
    OP
    May 29, 2015
    2
    @hambut 不行即使这样还是有1400多页
    ob
    ob
    May 29, 2015
    3
    一页一页爬啊,还要怎么加速?一次性的?
    jedyu
    jedyu
    May 29, 2015
    4
    代理、分页多线程/多进程
    pimin
    pimin
    May 29, 2015 via iPhone
    5
    1400页还要加速?
    哪些资源采集的不得用超级计算机啦
    ooh
    ooh
    May 29, 2015
    6
    1400也闲多?
    sacuba
    sacuba
    May 29, 2015
    7
    2500页 一天应该没问题吧
    matrix67
    matrix67
    May 29, 2015 via Android
    8
    1400秒不到半小时啊
    gxm123gxm
    gxm123gxm
    May 29, 2015
    9
    lz要不直接贴代码?
    fnd
    fnd
    May 29, 2015
    10
    1400页真不多。
    ericls
    ericls
    May 29, 2015
    11
    呃 异步爬虫 两分钟啊
    iam36
    iam36
    May 29, 2015
    12
    @ericls ?
    tao1991123
    tao1991123
    OP
    May 29, 2015
    13
    @ericls 求详细实现思路
    lch21
    lch21
    May 29, 2015
    14
    搞一堆代理ip爬
    touch
    touch
    May 29, 2015❤️1
    15
    1400页还要加速,1400页也就分分钟的事吧
    wesley
    wesley
    May 29, 2015
    16
    去爬wap版要容易很多
    shoumu
    shoumu
    May 29, 2015
    17
    楼主是哪个帖子,让大家都来爬爬,看谁能够用时最短爬完。
    est
    est
    May 29, 2015
    18
    2500楼,time.sleep(1) ,也就一个小时就抓完了啊。
    Mutoo
    Mutoo
    May 29, 2015
    19
    等这帖子回复的时间,早爬完了。
    tao1991123
    tao1991123
    OP
    May 29, 2015
    20
    @Mutoo 追求更快更好,反正有个这需求,真好借这个机会学习提高一下 有何不好?
    mV2GK
    mV2GK
    May 29, 2015
    21
    用scrapy爬会好点吧。。。
    eycfsjd
    eycfsjd
    May 29, 2015
    22
    到这上面挑几个速度较快的高匿名代理,多开几个进程,http://www.proxy.com.ru/
    mahone3297
    mahone3297
    May 29, 2015
    23
    爬的太快,不怕被ban?
    单机,必须要慢慢爬啊。。。
    abelyao
    abelyao
    May 29, 2015
    24
    @tao1991123

    这帖子没几个人是站在楼主这种学习的角度去思考的,而是觉得 1400+ 秒能爬完就完了,万一下次遇到一篇 14000+ 秒的呢?

    我对 python 不熟,但是爬虫的思路基本是一直的,无关语言。
    首先用 sleep 来卡 1 秒是完全没必要的,这直接影响了爬虫效率。
    要防止被 ban 无非就是不断换 IP 地址、user-agent 等等这些识别信息。
    多线程并发是肯定要的,保证了你一秒钟可以多爬几个页面,那效率就翻倍提升了。
    omph
    omph
    May 29, 2015
    25
    imlonghao
    imlonghao
    May 31, 2015 via Android
    26
    @omph pyspider不服
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2177 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 70ms · UTC 12:48 · PVG 20:48 · LAX 04:48 · JFK 07:48
    ♥ Do have faith in what you're doing.