我需要抓取多达10,000个网站
因为每个网站都有自己的HTML结构,并且需要自己的XPATH&逻辑。创建和委派Request
个对象。我很想为每个网站创建一个独特的蜘蛛
但这是前进的最佳方式吗?我可能只有一只蜘蛛并在start_urls
和allowed_domains
中添加所有10,000个网站,编写抓取库并去寻找它吗?
这是最好的做法吗?
答案 0 :(得分:3)
我遇到了类似的问题,我走了一条中路。
当您最终处理它时,您将遇到的大部分数据(可能)将以相同的方式处理。这意味着您需要的大部分逻辑都可以重复使用。具体包括查找数据的位置以及如何将其转换为通用格式。我建议如下:
创建您的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.
希望它有所帮助。