Правила сканирования Scrapy Отправить URL - PullRequest
0 голосов
/ 16 марта 2019

У меня есть CrawlerSpider с моим массивом start_urls:

    start_urls=[
            'http://www.tottus.cl/tottus/productListFragment/Conservas/118.8?No=0&Nrpp=&currentCatId=118.8',
            'http://www.tottus.cl/tottus/productListFragment/Alimento-Gato/9.2?No=0&Nrpp=&currentCatId=9.2'
        ]

и мои Правила сканирования

rules = (      
    Rule(LinkExtractor(allow=(),restrict_xpaths=('//a[@id="next"]')),follow=True),
    Rule(LinkExtractor(allow=(),restrict_xpaths=('//div[@class="title"]/a')),callback='parse_item',process_links='process_value'),
)

У меня есть функция procces_links, которая получает значение (дочерний URL) и оносделайте процесс X и верните его:

    def process_value(self,value):
    for link in value:
        #whatever procces
        link.url = link.url+'&categoria=hola'
        yield link

Это все с дочерним URL start_urls.Массив start_urls (родительский URL), URL в правиле (дочерний URL)

Моя проблема в том, что мне нужно отправить родительский URL (start_url) в функцию procces_value.мне нужно это:

def process_value(self,value):
    print(parent_url) #start_url . how i pass this in the Craw Rule?
    for link in value:
        print(link) #children url

Как я могу передать родительский URL (start_url) в функцию в моем правиле?

...