Извлечение данных из таблицы HTML с использованием scrapy: response.xpath () возвращает None - PullRequest
0 голосов
/ 07 июня 2018

Я строил веб-скребок в Python 3, используя библиотеку scrapy, и столкнулся с проблемой, которую не понимаю.Я успешно очистил другие таблицы, используя элемент inspect для получения переменных xpath.Однако с этой таблицей я не могу понять, как извлечь данные из таблицы.Я новичок в HTML, но не новичок в программировании, поэтому, пожалуйста, помогите мне, если я далеко отсюда.

Примером этой веб-страницы будет: http://land.elpasoco.com/ResidentialBuilding.aspx?schd=5317443025&bldg=1

Проверка страницыи получение xpath для целевой таблицы дает //*[@id="aspnetForm"]/table/tbody/tr[3]/td[1]/table/tbody/tr[1]/td/table/tbody/tr[3]/td/table

Однако при использовании этого в оболочке scrapy response.xpath(target).extract() возвращает [].Попытка нацелиться на любые отдельные ячейки также дает тот же нулевой результат.Мой предполагаемый результат - это фрейм данных или словарь, коррелирующий что-то вроде {'Dwelling Units': 1, 'Year Built': 2010 ... }. Любая помощь в определении того, где я ошибаюсь, или как получить данные, отформатированные как таковые, будет принята с благодарностью.Спасибо!

1 Ответ

0 голосов
/ 07 июня 2018
import scrapy


class ResidentialRecordsSpider(scrapy.Spider):
    name = "residential_records"

    start_urls = [
        'http://land.elpasoco.com/ResidentialBuilding.aspx?schd=5317443025&bldg=1',
    ]

    def parse(self, response):
        for record in response.xpath('//table[@width="90%"]//td'):
            key = record.xpath('./strong/text()').extract_first(default='')
            value = record.xpath('./text()').extract_first(default='')

            yield { key: value }

Здесь вам нужно выполнить только очистку данных

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