python 爬虫 解析效率如何提升?
本文介绍了python 爬虫 解析效率如何提升?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
现在采用的是在windows 环境下 采用多线程的方式进行爬取,
使用beautifulsoup+lxml进行解析.
N个爬取线程->解析队列->1个解析线程->存储队列->1个存储线程
整个执行程序的效率卡在计算密集的解析线程中,如果只是增加解析线程数量的话,反而增加线程切换开销速度变慢。
请问下 有什么办法可以较为明显的提升解析效率?
根据两位大腿的说明 准备采用
异步爬取->解析队列->N个解析进程->存储队列->存储线程
准备开工
解决方案
其实我觉得, 你在前面N个爬取线程
可以换成协程/线程池
实现, 因为你在频繁创建线程本省一种性能耗费, 用线程池虽然可以减少这部分的损耗, 但是上下文切换还是无法避免, 所以协程这方面, 应该是比较合适的.1个解析线程
换成 进程池
,多开几个进程去计算密集处理, 其余应该可以不用改, 如果还想再搞, 将核心部分用c/c++
重写咯, 希望可以帮到你
这篇关于python 爬虫 解析效率如何提升?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文