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

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

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