не может извлечь данные с помощью скрапа - PullRequest
0 голосов
/ 16 марта 2019

Я пытаюсь получить имя адреса со следующей страницы: https://property.spatialest.com/nc/durham/#/property/100016

property_spider.py:

from scrapy import Spider
from scrapy.selector import Selector

from property.items import PropertyItem

class PropertySpider(Spider):
    name = "property"
    allowed_domains = ["property.spatialest.com"]
    start_urls = [ 
        "http://property.spatialest.com/nc/durham/#/property/100016"
    ]   

    def parse(self, response):
        address = Selector(response).xpath("//html/body/main/div/div[2]/div/div[1]/div[2]/div/section/div/div[1]/div[2]/header/div/div/div[1]/div[2]/span")

        address_item = PropertyItem()
        address_item['address'] = address.xpath('span[@class="value "]/text()').extract()
        yield address_item

Паук каждый раз возвращает {'address': []}. Я думаю, возможно, что-то не так с тем, как я говорю это для извлечения данных ..

UPDATE:

Похоже, что он не получает никаких данных, потому что запрос обрезается в '#'

RESPONSE: <200 https://property.spatialest.com/nc/durham/>
2019-03-16 13:59:12 [scrapy.core.scraper] DEBUG: Scraped from <200 https://property.spatialest.com/nc/durham/>
{'address': []}```

1 Ответ

0 голосов
/ 17 марта 2019

Сайт использует дополнительные запросы для возврата необходимых вам данных.

Если вы откроете инструменты разработчика, вы увидите запрос, который возвращает необходимые вам данные.

URL: https://property.spatialest.com/nc/durham/data/propertycard

Метод: POST

Тело: parcelid=100016&card=&year=&debug%5BcurrentURL%5D=https%3A%2F%2Fproperty.spatialest.com%2Fnc%2Fdurham%2F%23%2Fproperty%2F100016&debug%5BpreviousURL%22%5D=

Ответ - json, и вы можете найти все данные здесь.

Так что вы должны сделать запрос внутри скрападля получения данных

...