невозможно извлечь полный URL-адрес @href с помощью scrapy - PullRequest
1 голос
/ 05 мая 2020

Я пытаюсь извлечь URL-адрес продукта из amazon.in. Атрибут href внутри a-тега из источника выглядит так:

href="/Parachute-Coconut-Oil-600-Free/dp/B081WSB91C/ref=sr_1_49?dchild=1&fpw=pantry&fst=as%3Aoff&qid=1588693187&s=pantry&sr=8-49&srs=9574332031&swrs=789D2F4EC1B25821250A55BFCB953F03"

Scrapy извлекает следующее:

/Parachute-Coconut-Oil-Bottle-600ml/dp/B071FB2ZVT?dchild=1

Я использовал следующий xpath:

//div[@class="a-section a-spacing-none a-spacing-top-small"]//a[@class="a-link-normal a-text-normal"]/@href

Это веб-сайт, который я пытаюсь очистить:
https://www.amazon.in/s?i=pantry&srs=9574332031&bbn=9735693031&rh=n%3A9735693031&dc&page=2&fst=as%3Aoff&qid=1588056650&swrs=789D2F4EC1B25821250A55BFCB953F03&ref=sr_pg_2

Как я могу извлечь ожидаемый URL-адрес с помощью Scrapy?

1 Ответ

0 голосов
/ 05 мая 2020

Это называется относительным URL-адресом. Чтобы получить полный URL-адрес, вы можете просто объединить его с базовым URL-адресом. Я не знаю, какой у вас код, но попробуйте что-нибудь вроде этого.

half_url = response.xpath('//div[@class="a-section a-spacing-none a-spacing-top-small"]//a[@class="a-link-normal a-text-normal"]/@href').extract_first()
full_url = 'https://www.amazon.in/' + half_url
...