2017-08-04 17 views
0

私はpython scrapyでスクリプトを書いて、yellowpageからいくつかの項目を解析しました。スクリプトを実行すると、すべての項目を完璧に解析します。しかし、私は問題に遭遇すると、それに応じて刻まれたデータをCSVファイルに書き込むことになります。データが埋め込まれたCSVファイルを開くと、データが1行おきに印刷されていることがわかります。空白行を取り除くにはどうすればよいですか?あなたの検討のためにスクリプト情報の下に貼り付けています。Scrapyは、1行おきにcsvファイルにデータを出力します

"items.py" は含まれています:クモ別名

from scrapy.item import Item, Field 
class RealypItem(Item): 
    Name = Field() 
    Address = Field() 
    Phone = Field() 

"yp.pyは、" 含まれています

from scrapy.spider import BaseSpider 

class MySpider(BaseSpider): 
    name = "YellowPage" 
    allowed_domains = ["yellowpages.com"] 
    start_urls = ["https://www.yellowpages.com/search?search_terms=Coffee%20Shops&geo_location_terms=Los%20Angeles%2C%20CA&page=2"] 

    def parse(self, response): 
     page = response.xpath('//div[@class="info"]') 
     for titles in page: 
      Title = titles.xpath('.//span[@itemprop="name"]/text()').extract() 
      Adr = titles.xpath('.//span[@itemprop="streetAddress" and @class="street-address"]/text()').extract() 
      Tel = titles.xpath('.//div[@itemprop="telephone" and @class="phones phone primary"]/text()').extract() 
      yield{'Name':Title,'Address':Adr,'Phone':Tel} 

私はスクリプトを実行するために使用していますコマンドを:

scrapy crawl YellowPage -o items.csv -t csv 

ここに、csvファイルに埋め込まれたデータの様子を部分的に示します。

enter image description here

+0

スクリーンショットではなく実際のファイルコンテンツを投稿できますか?多分あなたのソフトウェアはcsvを誤解しているだけでしょうか? – Granitosaurus

+0

ご意見ありがとうございます。そのファイルのリンクをしばらく貼り付けるつもりです。 – SIM

+0

ここにそのcsvファイルへのリンクがあります: "https://www.dropbox.com/s/xt49h3p3hx7sn7l/items.csv?dl=0" – SIM

答えて

0

あなたのcsvを表示するために使用しているソフトウェアがWindowsの改行文字で混乱するようなものは何でもあります。

一般に改行文字は\nですが、ウィンドウズの場合は\n\rです。一般的なものではなく、Windowsの改行を認識していることを認識しています。あなたのcsvプログラムは一般的な改行を期待していますが、代わりにwindowsを使用します。

ここで最も簡単な修正は、手動でファイルから\rカッターを削除することです。

+0

私は周りにいなかったので、今すぐコメントして申し訳ありません。あなたのソリューションは非常に簡単で興味深いようです。しかし、どこでこのバグを追跡して修正することができますか、私はどこで見つけることができますか?ありがとう。 – SIM

+0

私はそれがバグだとは思わない。 CSVは実際にはビジュアルなdoc形式ではなく、文字通りカンマで区切られた値で、1行に1つの値が入ります。だから、あなたはビジュアルプログラムを設定して、ウィンドウの改行を普通の改行として解釈するべきである。 – Granitosaurus

+0

これは窓の問題です。私はそれを気にしていますatm –

関連する問題