Я написал сценарий Scrapy, который получает некоторые правильные данные, и через некоторое время он начинает получать неправильные данные, такие как столбец цен, неправильная цена, и столбец img_url, получающий половину правильного URL и половину неправильного. Я решаю эту проблему. Спасибо! вот мой код:
# -*- coding: utf-8 -*-
import scrapy
class CurtainSpider(scrapy.Spider):
name = 'curtain'
allowed_domains = ['https://www.redbubble.com/shop']
#start_urls = ['https://www.redbubble.com/shop/shower-curtains/']
def start_requests(self):
yield scrapy.Request(url='https://www.redbubble.com/shop/shower-curtains/', callback=self.parse, headers={
'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.122 Safari/537.36'
})
def parse(self, response):
products = response.xpath("//div[@class='styles__grid--197Ps']/a")
for product in products:
title = product.xpath(".//div[@class='styles__box--206r9 styles__paddingRight-0--fzRHs']/div[@class='styles__textContainer--1xehi styles__disableLineHeight--3n9Fg styles__nowrap--2Vk3A']/span/text()").get()
price = product.xpath(".//span[@class='styles__text--NLf2i styles__body--3bpp7 styles__block--3OueG']/strong/span/text()").get()
img_url = product.xpath(".//div[@class='styles__imageDiv--1zOnW']/div[@class='styles__box--206r9']/div[@class='styles__box--206r9 styles__ratioOuter--AlSwh styles__cover--zzlOp styles__square--3vP1e styles__rounded--1lyoH']/div[@class='styles__box--206r9 styles__ratioInner--KvIFM']/img/@src").get()
yield {
'Title' : title,
'Price' : price,
'Img_Url' : img_url,
'User-Agent' : response.request.headers['User-Agent']
}