2014-11-24 5 views
0

У меня естьКак применять различные правила для разных start_urls в python scrapy?

start_urls = `[a.com,b.com,c.com,....]` 

Я хочу, чтобы применить Rule1 для a.com как ссылка экстракторов, разрешить, запретить и B.Com некоторого diffrent правила и c.com я не хочу, чтобы применить правила, просто обход данного URL-адреса.

Как я могу это достичь?

Заранее спасибо ..

ответ

2

Вы хотите переопределить метод start_requests и использовать специальные методы с ссылками экстракторов:

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) 
+0

Спасибо вам, что помогли мне много .. – ram

+0

@ram Вы долгожданная :) – elias

Смежные вопросы