Depuis deux heures, je recherche ce sujet et j'ai essayé pas mal de solutions mais aucune n'a fonctionné dans mon cas Voici d'abord le code

import scrapy

class HamburgSpider(scrapy.Spider):
    name = 'hamburg'
    #allowed_domains = ['https://www.hamburg.de']
    start_urls = ['https://www.hamburg.de/branchenbuch/hamburg/10239785/n0/']
    custom_settings = {
        'FEED_EXPORT_FORMAT': 'utf-8'
    }

    def parse(self, response):
        #response=response.body.encode('utf-8')
        items = response.xpath("//div[starts-with(@class, 'item')]")
        for item in items:
            business_name = item.xpath(".//h3[@class='h3rb']/text()").get()
            address1 = item.xpath(".//div[@class='address']/p[@class='extra post']/text()[1]").get()
            address2 = item.xpath(".//div[@class='address']/p[@class='extra post']/text()[2]").get()
            phone = item.xpath(".//div[@class='address']/span[@class='extra phone']/text()").get()

            yield {
                'Business Name': business_name,
                'Address1': address1,
                'Address2': address2,
                'Phone Number': phone
            }

Dans le code j'ai mis cette ligne

Custom_settings = { 'FEED_EXPORT_FORMAT': 'utf-8' }

La ligne est censée traiter le problème de l'encodage, mais lors de l'exportation des résultats au format csv, j'ai constaté que le problème persistait. J'ai simplement besoin de montrer cet exemple de texte Poppenbütteler Bogen 29a sa affiché sur le site Web. Ce que j'ai trouvé, c'est que la sortie est différente

0
YasserKhalil 11 nov. 2020 à 09:33

1 réponse

Meilleure réponse

Vous avez le mauvais nom de paramètre.

FEED_EXPORT_FORMAT ne fait pas partie des paramètres utilisés par défaut par scrapy, vous voulez FEED_EXPORT_ENCODING à la place.

2
stranac 11 nov. 2020 à 06:46