2016-06-29 3 views
0

Я хочу, чтобы очистить сайт от Python Scrapy и следовать всем ссылкам, которые содержат «каталог»Как использовать Правила в Scrapy для следующих ссылок?

Я думаю, что умный способ использует правила Scrapy, я попробовать это, но это не означает, ссылки

class Houra(CrawlSpider): 
    reload(sys) 
    pageNumber = 0 
    name = 'houra' 
    allowed_domains = ["houra.fr"] 
    driver = webdriver.Chrome() 
    rules = [ 
     Rule(LinkExtractor(allow=r'catalogue/'), callback='parse_page', follow=True), 
    ] 
    def __init__(self, idcrawl=None, iddrive=None, idrobot=None, proxy=None, *args, **kwargs): 
     super(Houra, self).__init__(*args, **kwargs) 
def start_requests(self): 
    yield Request("http://www.houra.fr", callback=self.parse_page1) 
def parse_page1(self, response): 
    self.driver.get(response.url) 
    inputElement = self.driver.find_element_by_css_selector("#CPProspect") 
    inputElement.send_keys("75001") 
    inputElement.submit() 

def parse_page(self, response): 

    body = response.css('body').extract_first() 
    f = io.open('./houra/page%s' % str(self.pageNumber), 'w+', encoding='utf-8') 
    f.write(body) 
    f.close() 
    self.pageNumber = self.pageNumber + 1 

ответ

2

restrict_xpaths определяет регион или регионы, где искать ссылки. Но вы должны использовать allow вместо который будет проверять значения ссылки href:

Rule(LinkExtractor(allow=r'catalogue/'), callback='parse_page', follow=True) 
+0

я использовал свой код, но он does'nt следовать либо, может быть, я не undrestand ответа правильно – parik

+0

@parik тогда, это может быть другая проблема. Убедитесь, что у вас на самом деле есть ссылки, содержащие 'catalog /' подстроку внутри значений 'href'. – alecxe

+0

Да, у меня есть много ссылок, которые содержат «каталог» в их href – parik

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