Очистить страницу сделок Amazon - PullRequest
0 голосов
/ 05 сентября 2018

Мне нужно получить ASIN по ссылкам hrefs на странице amazon. ASIN - это уникальные блоки из 10 букв и / или цифр, которые идентифицируют элементы.

Особенно я пытался скрести 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">
        ...

каждая ссылка содержит asin рядом с "../db/ASIN.."

Это мой код, но я не могу очистить и получить ASINs ...

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 голосов
/ 28 сентября 2018

HTML там генерируется javascript, который основан на объектах json. Вы можете извлекать данные непосредственно из этих объектов JSON. Вы можете получить все asins этим выражением:

/ reviewAsin \ ": \" ([A-Z0-9] +) \ "/

0 голосов
/ 06 сентября 2018
response.xpath('//*[contains(text(), "Risparmia su Bic Cristal Original - ")]').re(r'"reviewAsin" : "([^"]+)"')

Существуют разные типы асинов, не могу решить, что анализировать. Вы можете написать свой шаблон и захватить их.

оформить заказ response.xpath ('// * [содержит (текст (), "Оригинал Risparmia su Bic Cristal -")]'). extract ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...