首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python web爬虫多线程和多处理

Python web爬虫多线程和多处理
EN

Stack Overflow用户
提问于 2013-07-11 18:51:13
回答 1查看 776关注 0票数 0

简单地说,我的网络爬虫有两个主要的工作。收集器和Crawler,收集器将收集每个站点的所有url项,并存储非重复的url。爬虫将从存储中获取urls,提取所需的数据并将其存储起来。

2台机器

  1. Bot机器-> 8内核,物理Linux (这台机器上没有VM )
  2. 带有群集的存储机-> mySql (VM用于集群),2个数据库(url和data);端口1和数据端口2上的url数据库

目的:抓取100个站点,尽量减少瓶颈情况。

第一种情况:收集器*请求(Urllib)所有站点,收集每个站点的url项,如果它不是重复的url,则插入端口1上的存储机器。爬虫*从存储端口1获取url,*请求站点并提取所需数据,*将其存储在端口2上。

这会导致请求网站和mySql连接的连接瓶颈。

第二种情况:收集器不是在机器上插入,而是将url存储在我自己的迷你数据库文件system.There is no *读取一个大文件(使用os命令技术)只是*写(追加)和*删除文件的头文件。

这导致连接请求网站和I/O (读、写)瓶颈(可能是)

这两种情况都有收集和爬行100个站点的CPU绑定原因。

我听说I/O绑定使用多线程,CPU绑定使用多处理。

两样都行吗?好斗?有什么想法或建议吗?

EN

回答 1

Stack Overflow用户

发布于 2013-07-11 19:01:51

查看grequests,它不执行实际的多线程或多处理,但它的扩展比两者都要好得多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17601124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档