私はpython scrapyで非常に小さなスクリプトを書いて、yellowpageウェブサイトの複数のページに表示された名前、住所、電話番号を解析しました。スクリプトを実行すると、スムーズに動作することがわかります。しかし、私が遭遇する唯一の問題は、データがCSV出力で掻き取られる方法です。これは常に2つの行の間の行(行)の隙間です。私が意味していたことは、データは他のすべての行に印刷されているということです。下の画像を見ると、私が何を意味しているか知ることができます。もし治療のためでないなら、私は[newline = '']を使うことができました。しかし、残念ながら私はここで全く無力です。 csvの出力に空白行が含まれているのをどのように取り除くことができますか?それを調べるために事前に感謝します。csv出力で空白行を取り除くことができません
items.pyが含まれています。ここ
import scrapy
class YellowpageItem(scrapy.Item):
name = scrapy.Field()
street = scrapy.Field()
phone = scrapy.Field()
はクモです:
ところで、コマンド:ここ
import scrapy
class YellowpageSpider(scrapy.Spider):
name = "YellowpageSp"
start_urls = ["https://www.yellowpages.com/search?search_terms=Pizza&geo_location_terms=Los%20Angeles%2C%20CA&page={0}".format(page) for page in range(2,6)]
def parse(self, response):
for titles in response.css('div.info'):
name = titles.css('a.business-name span[itemprop=name]::text').extract_first()
street = titles.css('span.street-address::text').extract_first()
phone = titles.css('div[itemprop=telephone]::text').extract_first()
yield {'name': name, 'street': street, 'phone':phone}
は、CSV出力がどのように見えるかです私はCSV出力を取得するために使用しています:
scrapy crawl YellowpageSp -o items.csv -t csv
私はすぐに話しました。これは私のために働いた。私はこの答えと質問を投票しています:D –