pompeii
V2EX  ›  问与答

Python 爬虫速度优化思路?

  •  
  •   pompeii · Nov 3, 2019 · 2352 views
    This topic created in 2402 days ago, the information mentioned may be changed or developed.

    最近需要爬一些新闻,目前一秒钟只能爬取+处理+入库两个页面,感觉还是太慢,想问问大家,爬虫速度优化的基本思路和基本原则是什么?

    目前有做的,就是开协程( gevent ),网络请求全部用协程跑,其他没有特别的优化。

    可能可以优化的地方:需要频繁的写 log,可能会花时间;上多线程或者多进程。

    11 replies    2019-11-04 09:48:10 +08:00
    eq06
        1
    eq06  
       Nov 3, 2019
    你构造 HTTP 请求用的什么模块?
    pompeii
        2
    pompeii  
    OP
       Nov 3, 2019
    @eq06 #1 requests, 有用猴子补丁
    binux
        3
    binux  
       Nov 3, 2019 via Android
    别可能,看数据资源花哪了
    lhx2008
        4
    lhx2008  
       Nov 3, 2019 via Android
    多线程就行,后面有代理池再考虑协程吧。
    pompeii
        5
    pompeii  
    OP
       Nov 3, 2019
    @binux #3 恩,上班了去分析一下
    pompeii
        6
    pompeii  
    OP
       Nov 3, 2019
    @lhx2008 #4 为什么要有代理池的时候再考虑协程呢
    lhx2008
        7
    lhx2008  
       Nov 3, 2019   ❤️ 1
    @pompeii #6 不是不行,我的意思是速度太快,单 IP 早就被封了。
    vhysug01
        8
    vhysug01  
       Nov 3, 2019 via iPad
    试试 scrapy,如果这个爬的快,那得考虑下自己代码问题了
    yufeng0681
        9
    yufeng0681  
       Nov 3, 2019   ❤️ 1
    上多线程
    1.多线程去获取新闻,存本地队列
    2.多线程处理队列内容入库。最好批量入数据库,节省数据库操作
    pompeii
        10
    pompeii  
    OP
       Nov 4, 2019
    @lhx2008 #7 原来是这样
    pompeii
        11
    pompeii  
    OP
       Nov 4, 2019
    @yufeng0681 #9 感谢提供思路
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1260 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 17:23 · PVG 01:23 · LAX 10:23 · JFK 13:23
    ♥ Do have faith in what you're doing.