Scrapy, русский язык кодируется в unicode
Всем ку
Парсер записывает русский язык в unicode, а английский нет и результат получается смешанным.
Spider:
import scrapy
class HHspider(scrapy.Spider):
name = 'vacancies'
start_urls = [
'https://hh.ru/search/vacancyclusters=true&area=1&enable_snippets=true&salary=&st=searchVacancy&text=python+'
]
def parse(self, response):
for vacancy_url in response.css('div.vacancy-serp-item__info a::attr(href)').getall():
yield response.follow(vacancy_url, callback=self.extract_skills)
next_page = response.css('span.bloko-button-group a::attr(href)')
yield response.follow(next_page, callback=self.parse)
def extract_skills(self, response):
skills = response.css('div.bloko-tag-list span::text').getall()
yield {'tags': skills}
output ex:
{"tags": ["Python", "Git", "\u041e\u041e\u041f", "Unit Testing"]}
Как лучше(правильней) решить данную проблему?На стадии парсинга и записи в файл или декодировать в текст потом?
Ответы (1 шт):
Автор решения: bestpilotingalaxy
→ Ссылка
Вопрос не корректен, кодирование описано в документации и связано с работой фреймворка и конкретным форматом файла, в который записывается output. https://docs.scrapy.org/en/latest/topics/feed-exports.html#std:setting-FEED_EXPORT_ENCODING