Очень странная строка байтов. Невозможно преобразовать в str, используя Python - PullRequest
0 голосов
/ 20 апреля 2020

Этот код отлично работал несколько недель go. Но что-то изменилось.

Я загружаю данные с сайта.

txt = urlopen(url, timeout=60).readlines()
for line in txt:
    print(line.strip().decode("utf-8"))

UnicodeDecodeError: 'utf-8' code c не может декодировать байт 0xc0 в позиции 0: неверный начальный байт

print (txt) дает мне:

[b '\ xc0 \ xe2 \ xf2 \ xee \ xec \ xe0 \ xf2 \ xe8 \ xf7 \ xe5 \ xf1 \ xea \ xe0 \ xff \ xe7 \ xe0 \ xe3 \ xf0 \ xf3 \ xe7 \ xea \ xe0 \ xed \ xe5 \ xe4 \ xee \ xf1 \ xf2 \ xf3 \ xef \ xed \ xe0 ']

Я пытался распознать эту строку байтов с помощью онлайн-конвертеров, но они не смогли этого сделать.

Может быть, это важно. Этот код загружает биржевые котировки с

https://www.finam.ru/profile/moex-akcii/nlmk-ao/export/?market=1

С его помощью я получил такие строки ранее

НЛМК, Д, 20200103,000000, 143,9800000,144.7400000,143.3000000,144.5000000,4578730 NLMK, D, 20200106,000000,144.4800000,144.4800000,140.8800000,141.9400000,6600390 NLMK, D, 20200108,000000,13900000000000000000000000000000000000000000000000000000000000000000000000000000000000000 , 139.2000000,143.6000000,139.2000000,141.9600000,10108630 НЛМК, D, 20200110,000000,142.5400000,145.1200000,140.8000000,143.6200000,9444490 NLMK, D, 20200113,000000,143.7000000,146.98000004646

1 Ответ

1 голос
/ 20 апреля 2020

Если бы вы посмотрели на исходный код страницы, вы бы заметили:

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />

Эта страница просто отсутствует в UTF-8 ... и если вы декодируете эту байтовую строку, используя Windows -1251, вы получите строку: Автоматическая загрузка недоступна. От вашего имени, я думаю, вы должны понимать русский язык ...

...