Python 爬虫速度优化思路?

2019-11-03 10:43:11 +08:00
 pompeii

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

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

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

1925 次点击
所在节点    问与答
11 条回复
eq06
2019-11-03 10:46:30 +08:00
你构造 HTTP 请求用的什么模块?
pompeii
2019-11-03 10:50:06 +08:00
@eq06 #1 requests, 有用猴子补丁
binux
2019-11-03 10:56:30 +08:00
别可能,看数据资源花哪了
lhx2008
2019-11-03 11:05:08 +08:00
多线程就行,后面有代理池再考虑协程吧。
pompeii
2019-11-03 11:58:53 +08:00
@binux #3 恩,上班了去分析一下
pompeii
2019-11-03 11:59:19 +08:00
@lhx2008 #4 为什么要有代理池的时候再考虑协程呢
lhx2008
2019-11-03 12:06:41 +08:00
@pompeii #6 不是不行,我的意思是速度太快,单 IP 早就被封了。
vhysug01
2019-11-03 13:35:39 +08:00
试试 scrapy,如果这个爬的快,那得考虑下自己代码问题了
yufeng0681
2019-11-03 22:47:58 +08:00
上多线程
1.多线程去获取新闻,存本地队列
2.多线程处理队列内容入库。最好批量入数据库,节省数据库操作
pompeii
2019-11-04 09:47:29 +08:00
@lhx2008 #7 原来是这样
pompeii
2019-11-04 09:48:10 +08:00
@yufeng0681 #9 感谢提供思路

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/615731

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX