提高爬虫性能,都有什么奇技淫巧呢( python 方面)

2016-02-25 17:28:39 +08:00
 aljun

楼主现在想做一个大规模的爬虫爬取,寒假看了很多关于爬虫进阶的文章,文档,

归纳下来,寒假接触的爬虫爬取性能提升的模块和库:

那么除了这上面的还有别的么= =,另外这上面的哪些比较好使,哪些又一些坑呢?

关于任务队列,是不是都推荐使用 redis ? redis 构建分布式的爬取麻烦么?(正在看 redis 的书籍)
除了 redis 还有什么别的好使的办法么?

17627 次点击
所在节点    Python
37 条回复
aggron
2016-02-25 17:48:52 +08:00
任务队列方面可以看看 celery
ahxxm
2016-02-25 19:21:05 +08:00
网络请求正常异步了就基本没什么性能需求,除非你网速太快。框架 /库用 scrapy 或者 asyncio ,前者久经考验而且对口,后者官方推荐。
方便讲讲爬什么东西需要分布式吗。。
sunchen
2016-02-25 19:43:02 +08:00
任务队列不需要也分布式, redis 也不支持分布式,爬虫的分布式是指很多分布式爬虫 worker 从一个集中的任务队列(单机或分布式存储)里拿任务,然后分布式的去爬。
Tony042
2016-02-25 19:47:29 +08:00
可以用异步,可以看下 aiohttp 我觉得对 asyncio 封装挺好的
ooh
2016-02-25 19:56:02 +08:00
scrapy 不要重复造轮子
LINEX
2016-02-25 20:03:53 +08:00
缓存 dns ,不用每次解析域名貌似会快一点
(外行听别人这么说的
huangfs
2016-02-25 20:11:13 +08:00
楼主带带我不?
some0ne
2016-02-25 20:14:21 +08:00
ip 够多
est
2016-02-25 20:28:09 +08:00
1. 用 http/1.1
2. 自建 dns cache
3. 用 gzip (效果立竿见影)
aljun
2016-02-25 21:14:21 +08:00
收藏比回复还多得多``````宝宝心里苦啊
knightdf
2016-02-25 22:39:02 +08:00
去学 scrapy 源码吧。。。
onlyice
2016-02-25 22:42:31 +08:00
@est HTTP/1.1 的好处是?
honmaple
2016-02-25 23:23:25 +08:00
借楼,问一下现在 scrapy 对 python3 的支持如何了,今天刚把 scrapy 装上(几个月前装过总报错),准备明天开始看文档
herozzm
2016-02-25 23:27:25 +08:00
@some0ne 正解
mengskysama
2016-02-26 02:23:48 +08:00
哪方面的性能,如果量特别大耗时的操作一般都是在解析上面,用 bs4 速度不能忍。
WildCat
2016-02-26 07:57:01 +08:00
@honmaple 1.1rc 貌似支持了。
官方在某个 issue 里提到,二月末发布支持 Python 3 的正式版。
zhaozhao
2016-02-26 08:19:09 +08:00
scrapy 的作者们创建了 http://scrapinghub.com/ 先去尝试他们提供的服务说不定会更好一点
jamiesun
2016-02-26 09:28:15 +08:00
pyzmq,txzmq
youxiachai
2016-02-26 09:29:49 +08:00
搞不定..ip...这个优化也是白搞...
est
2016-02-26 09:38:47 +08:00
@onlyice keepalive 可以做连接池。

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

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

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

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

© 2021 V2EX