我需要从Amazon页面中的hrefs链接获取ASIN。 ASIN是由10个字母和/或数字组成的唯一块,用于标识项目。
我特别尝试用刮擦(python)刮擦https://www.amazon.it/gp/goldbox/。 在此页面中,有很多包含ASIN的链接。
<a id="dealImage" class="a-link-normal" href="https://www.amazon.it/Marantz-TT5005-Giradischi-Equalizzatore-Incorporato/dp/B008NIV668/ref=gbph_img_s-3_c128_ca594162?smid=A11IL2PNWYJU7H&pf_rd_p=8accddad-a52b-4a55-a9e1-760ad483c128&pf_rd_s=slot-3&pf_rd_t=701&pf_rd_i=gb_main&pf_rd_m=A11IL2PNWYJU7H&pf_rd_r=5E0HASYCKDNV4YWQCJSJ">
...
每个链接的“ ../db/ASIN ..”旁边都包含asin。
这是我的代码,但是我无法抓取并获得ASIN ...
import scrapy
class QuotesSpider(scrapy.Spider):
name = "amazon"
def start_requests(self):
urls = [
'https://www.amazon.it/gp/goldbox/'
]
for url in urls:
yield scrapy.Request(url=url, callback=self.parse)
def parse(self, response):
page = response.xpath('//a[contains(@class, "a-link-normal")]')
我可以使用以下方法拆分链接:split(“ / dp /”)
希望有人可以帮助我,谢谢!
答案 0 :(得分:0)
response.xpath('//*[contains(text(), "Risparmia su Bic Cristal Original - ")]').re(r'"reviewAsin" : "([^"]+)"')
有不同类型的asins,无法决定要解析哪个。 您可以编写图案并抓住它们。
签出此 response.xpath('// * [包含(text(),“ Risparmia su Bic Cristal Original-”)]')。extract()
答案 1 :(得分:0)
其中的html由javascript生成,它基于json对象。您可以直接从这些json对象中提取数据。 您可以通过以下表达式获取所有asins:
/ reviewAsin \“:\”([[A-Z0-9] +)\“ /