0

Проблема очень простая - банально не могу получить содержимое страницы с кириллическими символами, для примера взять хотя бы русскую Wikipedia. Используя urllib делал так, но постоянно натыкаюсь на Exception

from urllib.request import urlopen
from urllib.parse import quote


def get_content(name):
    print( urlopen('http://ru.wikipedia.org/wiki/' + quote(name)).readall()
           .decode('utf-8'))

get_content('лес')

такого вида:

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

Читал похожие вопросы в других обсуждениях, но не зависимо оттого, что я делаю с quote - результат пока тот же. Быть может, делаю что-то глупое, но пока просто-напросто достать страницу из вики не выходит

Komdosh
  • 12,128
Lescott
  • 323

2 Answers2

1

Просто нужно добавить

# coding=utf-8
from urllib import urlopen, quote


def get_content(name):
    return urlopen('http://ru.wikipedia.org/wiki/' + quote(name)).read()

print get_content('лес')
  • Нет, в комментариях ранее отметили - все дело в консольном выводе, а не кодировке. Использую PyCharm - их консоль (терминал) отличается не только от консоли самой Windows, но и вообще странно устроена. – Lescott Mar 25 '16 at 20:48
0

Возможно так поможет:

# ! /usr/bin/env python
# _*_ coding: utf-8 _*_

    print( urlopen(u'http://ru.wikipedia.org/wiki/' + quote(name)).readall()
       .decode('utf-8'))
PavelD.
  • 125