V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
pompeii
V2EX  ›  问与答

Python 爬虫速度优化思路?

  •  
  •   pompeii · 2019 年 11 月 3 日 · 2215 次点击
    这是一个创建于 2282 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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