Python Crawler-您认为最佳的设置是什么?

时间:2018-08-02 13:01:40

标签: python web-crawler

过去10个月来,我一直在用Python构建爬虫。 该搜寻器正在使用线程和队列来保存所有已访问和未访问的链接。

我使用BeautifulSoup并请求访问URL,并选择页面标题,元描述,关键字,CMS系统等等。

目前,搜寻器检查第一个种子url中的数据,并在完成爬取数据后,在单个线程中从当前页面中找到新链接,然后不断重复自身。

一切正常,除了当我想停止抓取过程时,它不会停止线程,而是保持运行,我添加了一个锁定变量来计算被抓取的页面数量,但是以某种方式它阻止了抓取到达爬网时,将执行此过程,而不执行链接过程。

下面的设置会更好吗?

  1. 一个只有一项工作的Link类。

此类将利用Threads查找网页上的所有链接,或者如果设置了限制,则仅返回请求的链接。

  1. 从事一项工作的Scraper班。

此类将遍历从Link类返回的所有链接,并使用线程收集请求的数据。

我的问题:

如果创建新设置,则Link类会将请求发送到url,Scrapper类也会发送请求。

因此,如果我的链接类应返回100个网址,那么我将至少向该URL发送100个请求,并且当Scrapper类通过链接任务找到的链接时,它会再发送100个请求。

所以我最终没有发送100个请求,而是发送了200个请求。

  • 我可以将汤类对象从链接类传递到某个数组,但是我最终会遇到内存问题。

您有什么建议?

0 个答案:

没有答案