Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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 Scrapy将所有行捕获到一个CSV行中_Python_Scrapy - Fatal编程技术网

Python Scrapy将所有行捕获到一个CSV行中

Python Scrapy将所有行捕获到一个CSV行中,python,scrapy,Python,Scrapy,我正在尝试生成一个CSV文件与刮,它是工作,但不是预期的。我有一个html表格,其中有多行,我想在CSV相同的。但是,以下代码将所有HTML行转换为单个CSV行 代码 类DemoSpider(scrapy.Spider): name=“DemoSpider” def start_请求(自我): URL=[] 对于范围(1,2)内的页面: url=”https://directory.easternuc.com/publicDirectory?page=%s%页 追加(url) 对于url中的ur

我正在尝试生成一个CSV文件与刮,它是工作,但不是预期的。我有一个html表格,其中有多行,我想在CSV相同的。但是,以下代码将所有HTML行转换为单个CSV行

代码

类DemoSpider(scrapy.Spider): name=“DemoSpider” def start_请求(自我): URL=[] 对于范围(1,2)内的页面: url=”https://directory.easternuc.com/publicDirectory?page=%s%页 追加(url) 对于url中的url: 生成scrapy.Request(url=url,callback=self.parse) def解析(自我,响应): item=TutorialItem() item['name']=response.selector.xpath(“//tr/td/h4/text()”).getall() item['phone']=response.selector.xpath(“//tr/td[2]/text()”).getall() item['mobile']=response.selector.xpath(“//tr/td[3]/text()”).getall() item['email']=response.selector.xpath(“//tr/td[4]/text()”).getall() 收益项目 如果我将
getall()
方法更改为
get
,我只将网站的第一行转换为csv


注意:作为一种解决方法,我可以在网站中找到总行数,然后进行迭代。然而,在旧版本的刮痧中,这似乎是可行的

您必须逐个迭代每个
tr
,并分别生成每个记录

def parse(self, response):

    for TR in response.xpath("//table/tr"):
        item = TutorialItem()
        item['name'] = TR.xpath("./td/h4/text()").get()
        item['phone'] = TR.xpath("./td[2]/text()").get()
        item['mobile'] = TR.xpath("./td[3]/text()").get()
        item['email'] = TR.xpath("./td[4]/text()").get()
        yield item