为了账号安全,请及时绑定邮箱和手机立即绑定

python 爬虫 解析效率如何提升?

python 爬虫 解析效率如何提升?

慕少森 2018-10-05 14:35:02
现在采用的是在windows 环境下 采用多线程的方式进行爬取,使用beautifulsoup+lxml进行解析.N个爬取线程->解析队列->1个解析线程->存储队列->1个存储线程整个执行程序的效率卡在计算密集的解析线程中,如果只是增加解析线程数量的话,反而增加线程切换开销速度变慢。请问下 有什么办法可以较为明显的提升解析效率?根据两位大腿的说明 准备采用异步爬取->解析队列->N个解析进程->存储队列->存储线程准备开工
查看完整描述

2 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

我的做法是多进程。多进程的好处是当单机性能不够的时候,可以随时切换为分布式爬虫。

查看完整回答
反对 回复 2018-10-14
?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

其实我觉得, 你在前面N个爬取线程 可以换成协程/线程池实现, 因为你在频繁创建线程本省一种性能耗费, 用线程池虽然可以减少这部分的损耗, 但是上下文切换还是无法避免, 所以协程这方面, 应该是比较合适的.
1个解析线程 换成 进程池,多开几个进程去计算密集处理, 其余应该可以不用改, 如果还想再搞, 将核心部分用c/c++ 重写咯, 希望可以帮到你

查看完整回答
反对 回复 2018-10-14
  • 2 回答
  • 0 关注
  • 1029 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信