Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 如何在python scrapy中为不同的起始URL应用不同的规则?_Python 2.7_Scrapy - Fatal编程技术网

Python 2.7 如何在python scrapy中为不同的起始URL应用不同的规则?

Python 2.7 如何在python scrapy中为不同的起始URL应用不同的规则?,python-2.7,scrapy,Python 2.7,Scrapy,我有 我想为a.com类的链接提取器应用规则1,允许、拒绝,为b.com应用一些不同的规则,而对于c.com,我不想应用规则,只需对给定的URL进行爬网即可 我怎样才能做到这一点 提前谢谢 要覆盖该方法并使用链接提取器的自定义方法: start_urls = `[a.com,b.com,c.com,....]` def start_requests(self): yield Request('http://a.com', self.parse_a) yield Request(

我有

我想为a.com类的链接提取器应用规则1,允许、拒绝,为b.com应用一些不同的规则,而对于c.com,我不想应用规则,只需对给定的URL进行爬网即可

我怎样才能做到这一点

提前谢谢

要覆盖该方法并使用链接提取器的自定义方法:

start_urls = `[a.com,b.com,c.com,....]`
def start_requests(self):
    yield Request('http://a.com', self.parse_a)
    yield Request('http://b.com', self.parse_b)
    yield Request('http://c.com', self.parse_data)

def parse_a(self, response):
    links = LinkExtractor(
        # ... extract links from http://a.com
    ).extract_links(response)
    return (Request(url=link.url, callback=self.parse_data) for link in links)

def parse_b(self, response):
    links = LinkExtractor(
        # ... extract links from http://b.com
    ).extract_links(response)
    return (Request(url=link.url, callback=self.parse_data) for link in links)