Вот код, с которым я буду работать (я использую скрапу)
def start_requests(self):
start_urls = ['https://www.lowes.com/search?searchTerm=8654RM-42']
Здесь я храню все свои URL
Вот как Я пытаюсь распечатать все после '='
productSKU = response.url.split("=")[-1]
item["productSKU"] = productSKU
Вот вывод:
{'productPrice': '1,449.95',
'productSKU': 'https://www.lowes.com/pd/ZLINE-KITCHEN-BATH-Ducted-Red-Matte-Wall-Mounted-Range-Hood-Common-42-Inch-Actual-42-in/1001440644'}
Итак, вот проблема:
URL-адреса, которые я ввожу, будут в конечном итоге заполнены
https://www.lowes.com/search?searchTerm = {something}
, и поэтому я хотел бы использовать {что-то}, чтобы убедиться, что у меня будет каждый элемент, который я попытался очистить на CSV (для сортировки и сопоставления).
Используемый мной URL перенаправляет мне этот URL:
(вход) https://www.lowes.com/search?searchTerm=8654RM-42
->
(Перенаправление) https://www.lowes.com/pd/ZLINE-KITCHEN-BATH-Ducted-Red-Matte-Wall-Mounted-Range-Hood-Common-42-Inch-Actual-42-in/1001440644
Итак, мой вывод для productSKU - это полный URL перенаправления, а не все, что находится после знака «=». Я хотел бы получить 8654RM-42.
А вот и вся моя программа
# -*- coding: utf-8 -*-
import scrapy
from ..items import LowesspiderItem
from scrapy.http import Request
class LowesSpider(scrapy.Spider):
name = 'lowes'
def start_requests(self):
start_urls = ['https://www.lowes.com/search?searchTerm=8654RM-42']
for url in start_urls:
yield Request(url, cookies={'sn':'2333'}) #Added cookie to bypass location req
def parse(self, response):
items = response.css('.grid-container')
for product in items:
item = LowesspiderItem()
#get product price
productPrice = product.css('.art-pd-price::text').get()
productSKU = response.url.split("=")[-1]
item["productSKU"] = productSKU
item["productPrice"] = productPrice
yield item