我正在尝试创建一个蜘蛛,从商店中抓取并抓取每个产品并将结果输出到JSON文件,其中包括进入主页的每个类别以及抓取每个产品(名称和价格),每个产品类别页面包括无限滚动。
我的问题是,每次我在刮擦一类物品的第一页后发出请求时,不是从相同类型的物品中获取下一批物品,而是从下一个类别中获得物品,并且输出最终变得一团糟。
我已经尝试过弄乱设置,将并发请求强制为一个,并为每个请求设置不同的优先级。
我发现了有关异步爬网的信息,但是我不知道如何按顺序创建请求。
import scrapy
from scrapper_pccom.items import ScrapperPccomItem
class PccomSpider(scrapy.Spider):
name = 'pccom'
allowed_domains = ['pccomponentes.com']
start_urls = ['https://www.pccomponentes.com/componentes']
#Scrapes links for every category from main page
def parse(self, response):
categories = response.xpath('//a[contains(@class,"enlace-secundario")]/@href')
prio = 20
for category in categories:
url = response.urljoin(category.extract())
yield scrapy.Request(url, self.parse_item_list, priority=prio, cb_kwargs={'prio': prio})
prio = prio - 1
#Scrapes products from every page of each category
def parse_item_list(self, response, prio):
products = response.xpath('//article[contains(@class,"tarjeta-articulo")]')
for product in products:
item = …Run Code Online (Sandbox Code Playgroud)