Я тестирую на amazon для анализа продуктов, хочу проанализировать продукты, я получил правильный xpath для продуктов, но я хочу отредактировать его так, чтобы он соответствовал "https://www.amazon.com/dp/{}".format("ASIN")
, то есть, удалив некоторые дополнительные элементы из ссылки, я также получил регулярное выражение для этого, но scrapy показывает ошибку, когда я использую process_value
из Link Extractors . Как я могу это исправить?
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from scrapy.loader import ItemLoader
from myamazon.items import MyamazonItem
from scrapy.loader import ItemLoader
import re
class AmazonSpider(CrawlSpider):
name = 'amazon'
allowed_domains = ['amazon.com']
start_urls = ['http://amazon.com/']
rules = (Rule(LinkExtractor(restrict_xpaths='//li[@class="a-last"]/a/@href')),
Rule(LinkExtractor(restrict_xpaths='//a[@class="a-link-normal a-text-normal"]'),callback="parse",
process_value= lambda i:f"https://www.amazon.com/dp/{re.search('dp/(.*)/',i).groups()[0]}")
)
ошибка:
process_value= lambda i:re.serach('dp/(.*)/',i).groups()[0])
TypeError: __init__() got an unexpected keyword argument 'process_value'