Я использую scrapy , чтобы отменить сайт Amazon только для обучения. Когда мы делаем покупки по категориям, мы получаем список продуктов, и когда мы нажимаем на продукт, мы получаем информацию об этом продукте. Я сделал основную c часть удаления деталей из списка продуктов, таких как название продукта, цена и их ссылки. но я хочу, чтобы эти сломанные ссылки использовались там и тогда, и страница с описанием каждого продукта должна быть удалена в самой программе.
class AmazonSpiderSpider(scrapy.Spider):
name = 'amazon_spider'
start_urls = [
'https://www.amazon.co.uk/s?me=A1NZU6VUR85CVU&marketplaceID=A1F83G8C2ARO7P'
]
def parse(self, response):
items = AmazonscrapyItem()
all_div_quotes = response.css('body')
for quotes in all_div_quotes:
product = quotes.css('.a-color-base.a-text-normal').css('::text').extract()
price = quotes.css('.a-offscreen').css('::text').extract()
brand = quotes.css('.s-image::attr(src)').extract()
asin = quotes.css(
'.sg-col-20-of-24.s-result-item.sg-col-0-of-12.sg-col-28-of-32.sg-col-16-of-20.sg-col.sg-col-32-of-36.sg-col-12-of-16.sg-col-24-of-28::attr(data-asin)').extract()
productlink = quotes.css('.a-link-normal.a-text-normal').css('::attr(href)').extract()
items['product'] = product
items['price'] = price
items['brand'] = brand
items['asin'] = asin
items['productlink'] = productlink
yield items
next_page_link = response.css('.a-last a::attr(href)').extract_first()
next_page_link = response.urljoin(next_page_link)
yield scrapy.Request(url=next_page_link, callback=self.parse)