2016-04-29 14 views
-1

に私は、コマンドラインを介して自分のファイルをエクスポートしようとしている:輸出Pythonのデータcsvファイル

scrapy crawl tunisaianet -o save.csv -t csv 

が、何も、任意の助けをhappenningされていませんか?ここ

が私のコードです:

import scrapy 
import csv 
from tfaw.items import TfawItem 


class TunisianetSpider(scrapy.Spider): 
    name = "tunisianet" 
    allowed_domains = ["tunisianet.com.tn"] 
    start_urls = [ 
     'http://www.tunisianet.com.tn/466-consoles-jeux/', 
    ] 

    def parse(self, response): 
     item = TfawItem() 
     data= [] 
     out = open('out.csv', 'a') 
     x = response.xpath('//*[contains(@class, "ajax_block_product")]') 
     for i in range(0, len(x)): 
      item['revendeur'] = response.xpath('//*[contains(@class, "center_block")]/h2/a/@href').re('tunisianet')[i] 
      item['produit'] = response.xpath('//*[contains(@class, "center_block")]/h2/a/text()').extract()[i] 
      item['url'] = response.xpath('//*[contains(@class, "center_block")]/h2/a/@href').extract()[i] 
      item['description'] = response.xpath('//*[contains(@class, "product_desc")]/a/text()').extract()[i] 
      item['prix'] = response.xpath('//*[contains(@class, "price")]/text()').extract()[i] 
      data = item['revendeur'], item['produit'], item['url'], item['description'], item['prix'] 
      yield data 
      out.write(str(data)) 
      out.write('\n') 
+0

なぜアイテムを作成しているのですか?タプルを歌いますか?コマンドラインでcsvに既にエクスポートしているのであれば、なぜ 'out.csv'が必要ですか? – eLRuLL

+0

out.csvはコマンドを実行するたびにデータを上書きしますが、それは問題ありません。 –

+0

[this](http://stackoverflow.com/questions/36902783/output-python-to-csv-regular/36903483#) 36903483)は助けますか? – eLRuLL

答えて

1

私はあなたがこれらのエラーを取得していると仮定します。

ERROR: Spider must return Request, BaseItem, dict or None, got 'tuple' in <GET http://www.tunisianet.com.tn/466-consoles-jeux> 

特にあなたが項目としてタプルを返すされている、間違っているものを言うこれ、あなたの歩留まりコードを変更します〜:

... 
item['prix'] = response.xpath('//*[contains(@class, "price")]/text()').extract()[i] 
yield item