Кодирование строки в scrapy и переход на JSON - PullRequest
0 голосов
/ 08 декабря 2018

Мне нужно собрать текстовые данные с сайтов, используя языки, отличные от английского (в основном восточноевропейские языки), используя Scrapy.Когда Scrapy завершает работу, ему необходимо преобразовать очищенные данные в JSON для дальнейшего использования.

Дело в том, что если я просто соскребу текст следующим образом:

i['title'] = response.xpath('//home/title//text()').extract_first()

без его кодирования, Scrapy бросаетчто-то вроде этого:

UnicodeEncodeError: 'charmap' codec can't encode character '\u0107' in position 103: character maps to <undefined>

С другой стороны, если я его кодирую и пытаюсь обработать это с помощью json.dumps (), я получаю TypeError, поскольку json не может сериализовать байты.Я видел это объяснение ( Как кодировать байты в JSON? Json.dumps (), бросая TypeError ), но это бесполезно, так как мне нужно использовать utf-8 или utf-16, ине ascii.

Есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 11 декабря 2018

вы смотрели на заголовки ответа?Какая кодировка говорит вам?Я могу представить, что он говорит вам другую кодировку, чем на самом деле.

Функция декодирования Pythons имеет ошибку параметра ('strict', 'replace', 'ignore'), которую вы можете использовать для отладки и поиска проблемы '

Извините, это больше комментарий, чемответ, но я пока не могу комментировать (слишком мало респ)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...