刮刮亚马逊交易页面

时间:2018-09-05 13:02:08

标签: python web-scraping scrapy amazon scrapy-spider

我需要从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&amp;pf_rd_p=8accddad-a52b-4a55-a9e1-760ad483c128&amp;pf_rd_s=slot-3&amp;pf_rd_t=701&amp;pf_rd_i=gb_main&amp;pf_rd_m=A11IL2PNWYJU7H&amp;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 /”)

希望有人可以帮助我,谢谢!

2 个答案:

答案 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] +)\“ /