Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何储存一张有刮屑的桌子?_Python_Scrapy - Fatal编程技术网

Python 如何储存一张有刮屑的桌子?

Python 如何储存一张有刮屑的桌子?,python,scrapy,Python,Scrapy,我是新来的,在获取表格数据时遇到了一些麻烦。 我正在尝试将id=grdTableView\u DXMainTable的表存储在文件中,该表来自: 查看来源: 我正在使用以下代码: import scrapy class mySpider(scrapy.Spider): name = "education" def start_requests(self): urls = [ 'http://databank.worldbank.org/da

我是新来的,在获取表格数据时遇到了一些麻烦。 我正在尝试将id=grdTableView\u DXMainTable的表存储在文件中,该表来自: 查看来源:

我正在使用以下代码:

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您使用的是hxs.select,代码的任何部分都没有定义它

2值grdTableView_DXMainTable不是类名,而是ID。您可以使用以下命令提取所有表信息: response.xpath'//table[@id=grdTableView\u DXMainTable]//td//text.extract

3如果您想保留所有HTML代码,最好这样做:
response.xpath'//table[@id=grdTableView\u DXMainTable]'。首先提取\u

我用你的代码尝试过的可能的重复项,但如果我尝试将数据保存在文件中,它不会存储任何内容。你是否尝试过使用scrapy shell并调试每一步,看看失败的地方?我用过它,它对我很有效。