2017-10-10 63 views
-1

我是scrapy的新手,在這裏我創建了一個使用亞馬遜網址的蜘蛛無法獲得輸出到csv。使用scrapy創建一個蜘蛛,並無法將數據存儲到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} 

我的殼呈現這樣的結果:

len(response.xpath('//h2[contains(@class,"a-size-base s-inline s-access-tit le a-text-normal")]/text()')) 24

我是否需要更改任何設置?

+0

你如何運行刮刀?你在日誌中遇到任何錯誤?還檢查錯字@Arun提到的是什麼導致問題 –

+0

我運行我的蜘蛛是這樣的:scrapy crawl spidername,沒有錯誤我的外殼給我結果的計數但不輸出到CSV –

回答

0

要產生結果以CSV,你需要用一個輸出選項

scrapy crawl -o results.csv spidername 

只運行履帶,當您激活輸出結果被髮送到文件。否則他們將由您的piplelines進行處理。如果你沒有通過管道將它們保存在任何地方,那麼它們將只在終端的控制檯日誌上

+0

代碼顯示了文件「C:\ Users \ imp \ first_scrapy \ first_scrapy \ spiders \ Amazon_MotoMobiles.py」,l ine 9 yield {'ProductName':product_name,'Price': product_price} ^ IndentationError:意外縮進 –

+0

在http://pastebin.com/上發佈完整文件並共享調查鏈接 –

+0

以下是代碼https://pastebin.com/THPvAca1 –

0

我認爲這是因爲你的良率在字典中有一些語法錯誤。

更改此

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

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

我糾正了我的代碼...然後過控制檯扔我的錯誤 –

+0

產量{「產品名稱」:PRODUCT_NAME,「價格」:PRODUCT_PRICE} IndentationError:取消縮進不匹配任何外部縮進級別這是我編輯的代碼 \t 產量{「產品名稱」:PRODUCT_NAME ,'Price':product_price} –