2017-05-28 10 views
0

次のようにオンラインで資料を抽出するプログラムを作成しました。それは動作し、csvファイルを生成します。ただし、Excelファイルに見られるように、データはカンマで区切られているように見えます。 ファイルをカンマ区切りにするにはどうすればよいですか?治療はコンマで区切られたCSVファイル

import scrapy 

class JPItem(scrapy.Item): 
question_title = scrapy.Field() 
question_content = scrapy.Field() 
question_link = scrapy.Field() 
best_answer = scrapy.Field() 
best_answer_link = scrapy.Field() 

class JPSpider(scrapy.Spider): 

name = "jp" 
allowed_domains = ['detail.chiebukuro.yahoo.co.jp'] 

start_urls = [ 
    'https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q' + str(x) 
    for x in range (10000000000,100000000000) 
] 

def parse(self, response): 
    item = JPItem() 

    item['question_title'] = response.css("div.mdPstd.mdPstdQstn.sttsRslvd.clrfx div.ttl h1::text").extract_first() 
    item['question_content'] = ''.join([i for i in response.css("div.mdPstdQstn div.ptsQes p::text").extract()]) 
    item['question_link'] = ''.join(response.css("div.mdPstdQstn p:not([class]) a::text").extract()) 
    item['best_answer'] = ''.join([i for i in response.css("div.mdPstdBA div.ptsQes p.queTxt::text").extract()]) 
    item['best_answer_link'] = ''.join(response.css("div.mdPstdBA p:not([class]) a::text").extract()) 

    yield item 

答えて

1

彼らは、カンマ区切りのファイルに見える理由であるリスト、などすべてのitemプロパティを返します。ただし、扱っている最後の4つのアイテムのプロパティは、''.join()を使用しているため、リストにはなりません。また、各リスト項目をExcelのcsvファイルで独自のセルに取り込む場合は、リストを反復処理し、それぞれ別々にyieldを繰り返す必要があります。

+0

あなたの答えをありがとう。しかし、私はそれをどのように修正するか分からない。利回り['xxx']を1つずつ追加するだけでその問題を解決できるのでしょうか? –

+0

各項目をスプレッドシート内の独自の行に入れたい場合は、各要素を 'for'ループで個別に' yield 'し、収集したパラメータのリストを繰り返します。 – FiscalTwinkie

関連する問題