Я новичок в области скрапинга, и мое первое упражнение - почистить определенную страницу на сайте 18:00:
- Получить URL каждого продукта на начальной странице
- Введите ссылку и очистите информацию о продукте (ссылка, описание, цена и т. Д.)
- Вернитесь на начальную страницу и перейдите к следующему продукту и т. Д.
Похоже, я получаю URL-адреса продуктов с начальной страницы, и тогда я не могу вызвать метод get parse_item
, который нужно вызвать. Я пытался читать и находить похожие проблемы, но, возможно, потому что я новичок в этом, я не мог понять, почему это не работает. Я пытался использовать метод правила и с теми же результатами.
Может кто-нибудь, пожалуйста, помогите мне? Я пытался решить эту проблему в течение 3 дней. Благодарю.
Вот копия моего сценария:
# -*- coding: utf-8 -*-
import scrapy
from scrapy import Spider
from scrapy.spiders import Spider
from esourcing.items import EsourcingItem
from scrapy.http import Request
import re
class SixpmSpider(scrapy.Spider):
name = 'sixpmsouq'
allowed_domains = ['web']
start_urls = ('https://www.6pm.com/a2-by-aerosoles-women-
shoes/CK_XAVoC0iPAAQHiAgQBCxgykgMLWzcwIFRPIDEwMF0.zso?
s=recentSalesStyle/desc/',)
def parse(self, response):
html = response.body
for href in response.xpath('//*[@itemprop="url"]/@href'):
url = "http://www.6pm.com"+ href.extract()
yield scrapy.Request(url, callback=self.parse_item)
def parse_item(self, response):
item = EsourcingItem()
item['reference'] = response.xpath('//*[text()="SKU: #"]/text() [2]').extract()
yield item