как хранить столик со скрапом? - PullRequest
0 голосов
/ 03 мая 2018

Я новичок в Scrapy и у меня проблемы с получением данных таблицы. Я пытаюсь сохранить в файле таблицу с id = grdTableView_DXMainTable из: вид-источник: http://databank.worldbank.org/data/reports.aspx?source=2&series=SE.PRM.NENR&country=

Я использую следующий код:

import scrapy

class mySpider(scrapy.Spider):
    name = "education"

    def start_requests(self):
        urls = [
          'http://databank.worldbank.org/data/reports.aspx?source=2&series=SE.PRM.NENR&country=',
        ]
        for url in urls:
            yield scrapy.Request(url=url, callback=self.parse)

    def parse(self, response):
        page = response.url.split("/")[-2]
        filename = 'education-%s.html' % page
        with open(filename, 'wb') as f:    
            f.write(hxs.select('//table[@class="grdTableView_DXMainTable"]/td.//text()').extract())      
            self.log('Saved file %s' % filename)

Полученный HTML-файл пуст. Кто-нибудь может мне помочь?

1 Ответ

0 голосов
/ 04 мая 2018

В вашем коде есть некоторые пункты, которые не верны:

1) Вы используете hxs.select, который не определен ни в одной части вашего кода.

2) Значение grdTableView_DXMainTable - это не имя class, это ID. Вы можете извлечь всю информацию таблицы, используя: response.xpath('//table[@id="grdTableView_DXMainTable"]//td//text()').extract()

3) Если вы хотите сохранить весь HTML-код, лучше сделать это: response.xpath('//table[@id="grdTableView_DXMainTable"]').extract_first()

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