我需要抓取多达10,000个网站

因为每个网站都具有独特的HTML结构,并且需要自己的XPATH逻辑以及创建和委派Request对象的逻辑。我很想为每个网站创建一个独特的蜘蛛

但是,这是最好的方法吗?我是否应该只有一只蜘蛛,并在start_urlsallowed_domains中添加所有10,000个网站,编写抓取库并开始使用?

关于这方面的最佳实践是什么?

最佳答案

我遇到了类似的问题,我走了一条中间路。

当最终处理数据时,您将遇到的许多数据(可能)将以相同的方式处理。这意味着可以重用您需要的许多逻辑。具体包括在哪里寻找数据以及如何将其转换为通用格式。我建议以下内容:

创建MainSpider类,其中包含所需的大多数逻辑和任务。
对于每个站点,子类化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.


希望能帮助到你。

关于python - Scrapy搜寻器-创建10,000个蜘蛛还是一个蜘蛛爬行10,000个域?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31623593/

10-11 17:30