Scrapy爬虫 - 创建一万个爬虫还是一个爬虫爬取一万个域名?

3

我需要爬取高达10,000个网站

由于每个网站都有自己独特的HTML结构,需要自己的XPATH逻辑和创建委托Request对象的逻辑。我想为每个网站创建一个唯一的爬虫。

但这是最好的方式吗?也许我应该有一个单一的爬虫,将所有10,000个网站添加到start_urlsallowed_domains中,编写网络爬虫库并开始进行爬取?

哪种方法是最佳实践?

1个回答

4
我遇到过类似的问题,我采用了一种折中的方法。
当你最终处理数据时,你将遇到许多相同的数据处理方式。这意味着你需要重复使用大量的逻辑。具体来说,包括查找数据的位置以及将其转换为通用格式的方式。我建议你采取以下步骤:
创建一个名为MainSpider的类,其中包含你需要的大部分逻辑和任务。
对于每个站点,都需要派生出一个子类,并根据需要定义适当的逻辑模块。
main_spider.py
class MainSpider(object):
# Do things here
    def get_links(url)

        return links

spider_mysite.py

from main_spider import MainSpider
class SpiderMysite(MainSpider):
    def get_data(links):
        for link in links:

            # Do more stuff. 

希望这可以帮助到你。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接