Найти - Пользователи
Полная версия: Grab+кириллица
Начало » Python для новичков » Grab+кириллица
1
denmariupol
Доброй ночи.

# -*- coding: UTF-8 -*-
from grab import Grab
g = Grab()
g.go('http://allnum.ru/r/900')
print g.xpath_text(u'//*[@id="allnumdt"]/tbody/tr[1]/td[3]').encode('utf-8')
на выходе ВоронежÑ�каÑ� облаÑ�ть

ЧЯДНТ?Спасибо.
ZerG
а ы уверены что сайт на UTF-8 а не скажем cp1251 а то как раз похоже…
denmariupol
<meta http-equiv=“Content-Type” content=“text/html; charset=utf-8”/>
так написано в исходном коде страницы по ссылке выше
py.user.next
>>> from grab import Grab
>>> 
>>> g = Grab()
>>> g.go('http://allnum.ru/r/900')
<grab.document.Document object at 0x973368c>
>>> print g.doc.select(u'//*[@id="allnumdt"]/tbody/tr[1]/td[3]').text()
Воронежская область
>>>
denmariupol
В IDLE все работает,в pycharm этот же код выдает ошибку
    print g.doc.select(u'//*[@id="allnumdt"]/tbody/tr[1]/td[3]').text()
  File "C:\Python27\lib\encodings\cp1252.py", line 12, in encode
    return codecs.charmap_encode(input,errors,encoding_table)
UnicodeEncodeError: 'charmap' codec can't encode characters in position 0-10: character maps to <undefined>
В чем может быть дело?
py.user.next
Консоль - в cp1251, а текст - в utf-8. Можешь записать его в файл. В cp1251 очень мало символов может быть представлено.
Можно, конечно, перекодировать текст из utf-8 в cp1251 с заменами. Возможно, в PyCharm можно выставить кодировку консоли.
denmariupol
Спасибо за объяснение,добрый человек :)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB