使用scrapy创建爬行器,无法将数据存储到csv

使用scrapy创建爬行器,无法将数据存储到csv,scrapy,web-crawler,Scrapy,Web Crawler,我对scrapy很陌生,在这里我使用amazon URL创建了一个蜘蛛,无法将输出获取到csv 这是我的密码: import scrapy class AmazonMotoMobilesSpider(scrapy.Spider): name = "amazon" start_urls = ['https://www.amazon.in/Samsung-Mobiles/b/ref=amb_link_47?ie=UTF8&node=4363159031&pf_rd_m=A1VBAL

我对scrapy很陌生,在这里我使用amazon URL创建了一个蜘蛛,无法将输出获取到csv

这是我的密码:

import scrapy

class AmazonMotoMobilesSpider(scrapy.Spider):
name = "amazon"
start_urls = ['https://www.amazon.in/Samsung-Mobiles/b/ref=amb_link_47?ie=UTF8&node=4363159031&pf_rd_m=A1VBAL9TL5WCBF&pf_rd_s=merchandised-search-leftnav&pf_rd_r=NGA52N9RAWY1W103MPZX&pf_rd_r=NGA52N9RAWY1W103MPZX&pf_rd_t=101&pf_rd_p=1ce3e975-c6e8-479a-8485-2e490b9f58a9&pf_rd_p=1ce3e975-c6e8-479a-8485-2e490b9f58a9&pf_rd_i=1389401031',]
def parse(self,response):
    product_name = response.xpath('//h2[contains(@class,"a-size-base s-inline  s-access-title  a-text-normal")]/text()').extract()
    product_price = response.xpath('//span[contains(@class,"a-size-base a-color-price s-price a-text-bold")]/text()').extract()
    yield {'product_name'product_name,'product_price': product_price}
我的shell显示以下结果:

len(response.xpath('//h2[包含(@class,“a-size-base s-inline s-access-tit le a-text-normal“]/text()”) 二十四


我需要更改任何设置吗?

我想这是因为您的yield在字典中有一些语法错误

改变这个

yield {'product_name'product_name,'product_price': product_price}


要在CSV中生成结果,您需要运行带有输出选项的爬虫程序

scrapy crawl -o results.csv spidername 

仅当激活输出时,结果才会发送到文件。否则它们将由您的管道处理。如果您没有通过管道将它们保存到任何地方,那么它们将仅出现在终端的控制台日志上

您是如何运行刮板的?日志中有错误吗?另外,检查输入错误@Arun是什么导致了这个问题我运行我的蜘蛛像这样:刮擦爬行蜘蛛名称,没有错误我的外壳给了我结果的计数,但没有输出到csvI更正了我的代码。。。然后控制台也向我抛出了错误yield{'ProductName':product\u name,'Price':product\u Price}缩进错误:unindent与任何外部缩进级别都不匹配这里是我编辑的代码yield{'ProductName':product\u name,'Price':product\u Price}代码向我显示了文件“C:\Users\imp\first\u scrapy\first\u scrapy\spider\Amazon\u MotoMobiles.py”,第9行收益{'ProductName':产品名称,'Price':产品价格}^IndentationError:意外缩进在中发布您的完整文件并共享一个用于调查的链接它起到了作用…非常感谢@tarun lalwani………我的代码行有什么问题Python依赖于缩进,您可以像其他语言一样随机使用空格。你需要保持每个级别的空间相同。是的,你是对的,我使用了制表符而不是空格
scrapy crawl -o results.csv spidername