J'ai écrit un tout petit script en python scrapy pour analyser le nom, la rue et le numéro de téléphone affichés sur plusieurs pages du site web de yellowpage. Quand je cours mon script je le trouve fonctionnant doucement. Cependant, le seul problème que je rencontre est la façon dont les données sont récupérées dans la sortie csv. C'est toujours un écart de ligne (ligne) entre deux rangées. Ce que je voulais dire, c'est que les données sont imprimées tous les deux rangs. En voyant l'image ci-dessous, vous saurez ce que je voulais dire. Si ce n'était pas pour le scrapy, j'aurais pu utiliser [newline = '']. Mais, malheureusement, je suis totalement impuissant ici. Comment puis-je me débarrasser des lignes vides qui arrivent dans la sortie csv? Merci d'avance d'y jeter un coup d'œil.Impossible de se débarrasser des lignes vides dans la sortie csv
items.py comprend:
import scrapy
class YellowpageItem(scrapy.Item):
name = scrapy.Field()
street = scrapy.Field()
phone = scrapy.Field()
Voici l'araignée:
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}
Voici comment la sortie csv ressemble:
BTW, la commande J'utilise pour obtenir la sortie csv est:
scrapy crawl YellowpageSp -o items.csv -t csv
J'ai parlé à bientôt. Cela a fonctionné pour moi. Je suis en train de voter cette réponse et la question: D –