加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 对于我的应用程序,有多少线程是最佳的?

发布时间:2020-12-20 13:05:29 所属栏目:Python 来源:网络整理
导读:我有一个简单的 Python网络爬虫.它使用SQLite来存储其输出并保留队列.我想让爬虫程序多线程,以便它可以一次抓取几个页面.我想我会创建一个线程并立即运行该类的几个实例,因此它们都同时运行.但问题是,我应该一次运行多少人?我应该坚持两个吗?我可以走高吗
我有一个简单的 Python网络爬虫.它使用SQLite来存储其输出并保留队列.我想让爬虫程序多线程,以便它可以一次抓取几个页面.我想我会创建一个线程并立即运行该类的几个实例,因此它们都同时运行.但问题是,我应该一次运行多少人?我应该坚持两个吗?我可以走高吗?什么线程的合理限制是什么?请记住,每个线程都会转到网页,下载html,运行一些正则表达式搜索,将它找到的信息存储在SQLite数据库中,然后从队列中弹出下一个URL.

解决方法

您可能会发现您的应用程序带宽有限,而不是CPU或I / O限制.

因此,添加任意多个,直到性能开始降低.

您可能会遇到其他限制,具体取决于您的网络设置.就像你在ADSL路由器后面一样,并发NAT会话的数量会受到限制,这可能会影响一次发出太多的HTTP请求.制作太多,您的提供商可能会将您视为感染病毒等.

还有一个问题是,您正在抓取的服务器可以处理多少请求以及您想要加载多少负载.

我只用了一个线程就写了一个爬虫.我花了大约一天的时间来处理我想要的所有信息,大约每两秒一页.我可以更快地完成它,但我认为这对服务器来说不那么重要了.

所以真的没有硬性和快速的答案.假设一个1-5兆位的连接我会说你可以很容易地拥有多达20-30个线程而没有任何问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读