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

Python 爬虫速度优化思路?

  •  
  •   pompeii · 2019-11-03 10:43:11 +08:00 · 1985 次点击
    这是一个创建于 1846 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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