DEBUG: Просмотрено (403) - INFO: Просмотрено 0 страниц
Вот мой паук
class ProductoSpiderTres(CrawlSpider):
name = 'linio'
item_count = 0
allowed_domain = ['www.linio.com.co']
p = "portatil lg"
start_urls = ["https://www.linio.com.co/search?scroll=&q="+p]
handle_httpstatus_list = [403]
def __init__(self, **kwargs):
super().__init__(**kwargs)
rules = {
Rule(LinkExtractor(allow = (), restrict_xpaths = ('//a[@class="page-link page-link-icon"]'))),
Rule(LinkExtractor(allow = (), restrict_xpaths = ('//a[@class="col-12 pl-0 pr-0"]')),
callback = "parse_item", follow = False),
}
def parse_item(self, response):
global outputResponse
lista = {}
lista['titulo'] = response.xpath('//span[@class="product-name"]/text()').extract_first()
lista['urlImagen'] = response.xpath('//img[@class="image-modal"]/@src').extract_first()
lista['precio'] = response.xpath('//span[@class="price-main-md"]/text()').extract_first()
lista['conyven'] = response.xpath('nn').extract_first() #ignore this
lista['estrellas'] = response.xpath('nn').extract_first() #And this
lista['url'] = response.request.url
outputResponse.append(lista)
self.item_count += 1
if self.item_count > 3:
raise CloseSpider('item_exceeded')
yield lista
И... вот где я его выполняю
def executetres(peticion):
url = ['https://www.linio.com.co/search?scroll=&q='+peticion]
process = CrawlerProcess({
'USER_AGENT': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"
})
process.crawl(ProductoSpiderTres, start_urls=url)
process.start()
return outputResponse
print (executetres("computador portatil"))
А потом... Я получил следующее:
Я уже много раз менял USER_AGENT и ничего не изменилось. Я очень новичок во всем этом scrapy, поэтому я смотрел некоторые решения в интернете, но я не очень хорошо их понял, люди объясняют так, как будто вы эксперт в этом, и они опускают много вещей, которые они предполагают, что я уже знаю. P.S.: "outputresponse" является глобальной переменной в моем пауке