我需要抓取多达10,000个网站
因为每个网站都具有独特的HTML结构,并且需要自己的XPATH逻辑以及创建和委派Request
对象的逻辑。我很想为每个网站创建一个独特的蜘蛛
但是,这是最好的方法吗?我是否应该只有一只蜘蛛,并在start_urls
和allowed_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/