Как очистить данные JSON с помощью Scrapy - PullRequest
0 голосов
/ 11 июня 2018

Я использую scrapy и пытаюсь проверить мой селектор с помощью scrapy shell, но ничего не работает.Я пытаюсь очистить данные JSON на этом сайте.

https://web.archive.org/web/20180604230058/https://api.simon.com/v1.2/tenant?mallId=231&key=40A6F8C3-3678-410D-86A5-BAEE2804C8F2&lw=true

Я пытался очистить данные с помощью селектора

   response.css("body > pre::text").extract()

Однако, похоже, это не работает.Не уверен, что не так ...

В идеале я просто хочу получить все элементы "Name: XXX" из данных JSON.Так что, если вы знаете, как их выбрать, это было бы очень полезно!

В настоящее время мой код выглядит следующим образом

    # -*- coding: utf-8 -*-
    import scrapy # needed to scrape
    import sys    # need to import xlrd
    sys.path.extend("/Users/YoungFreeesh/anaconda3/lib/python3.6/site- 
    packages/") # needed to import xlrd
    import xlrd   # used to easily import xlsx file 

    class AmazonbotSpider(scrapy.Spider):
        name = 'ArchiveSpider'

        allowed_domains = ['web.archive.org']
        start_urls =['https://web.archive.org/web/20180604230058/https://api.simon.com/v1.2/tenant?mallId=231&key=40A6F8C3-3678-410D-86A5-BAEE2804C8F2&lw=true']

        def parse(self, response):
            print(response.body)

1 Ответ

0 голосов
/ 11 июня 2018

Поскольку содержимое находится внутри iframe, это отдельная страница, сначала нужно перейти к iframe.Как ссылка, что-то вроде этого:

urls = response.css('iframe::attr(src)').extract()
for url in urls :
    yield scrapy.Request(url...., target=parse_iframe)

, затем определите новый метод parse_iframe, где вы анализируете ответ iframes.

...