Scrapy 中不同 start_urls 的不同解析函数

Different parse function for different start_urls in Scrapy

Scrapy可以为每个start_urls设置不同的解析函数吗?

这是一段伪代码:

    start_urls = [
    "http://111sssssssss.com",
    "http://222sssssssssssss.com",
    "http://333sssssssssss.com",
    "http://444sssssssss.com",
]


def parse_1():
    '''some code, this function will crawl http://111sssssssss.com'''


def parse_2():
    '''some code, this function will crawl http://222sssssssssssss.com'''

有什么办法吗?

您可以覆盖/实现 parse_start_url 函数,并在 response.url 满足您的条件时调用 parse_1parse_2(在这种情况下它是正确的 URL).

def parse_start_url(response):
    if response.url == 'http://111sssssssss.com':
        parse_1(response)
    if response.url == 'http://222sssssssssssss.com':
        parse_2(response)

有关 parse_start_url() 的更多信息,请阅读 the documentation