У меня есть CrawlerSpider с моим массивом start_urls:
start_urls=[
'http://www.tottus.cl/tottus/productListFragment/Conservas/118.8?No=0&Nrpp=¤tCatId=118.8',
'http://www.tottus.cl/tottus/productListFragment/Alimento-Gato/9.2?No=0&Nrpp=¤tCatId=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) в функцию в моем правиле?