无法用scrapy提取完整的url @href。

问题描述 投票:0回答:1

我试图从amazon.in提取一个产品的url。源码中的a-tag里面的href-attribute是这样的。

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

这是我想提取的网站 This is the website I am trying to scrape: https:/www.amazon.ins?i=pantry&srs=9574332031&bbn=9735693031&rh=n%3A9735693031&dc&page=2&fst=as%3Aoff&qid=1588056650&swrs=789D2F4EC1B25821250A55BFCB953F03&ref=sr_pg_2。

我怎么能用Scrapy提取预期的网址?

python scrapy href screen-scraping extraction
1个回答
0
投票

这就是所谓的相对网址。要想得到完整的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
© www.soinside.com 2019 - 2024. All rights reserved.