Форум сайта python.su
0
Доброй ночи.
# -*- 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')
Офлайн
61
а ы уверены что сайт на UTF-8 а не скажем cp1251 а то как раз похоже…
Офлайн
0
<meta http-equiv=“Content-Type” content=“text/html; charset=utf-8”/>
так написано в исходном коде страницы по ссылке выше
Офлайн
857
>>> 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() Воронежская область >>>
Офлайн
0
В 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>
Офлайн
857
Консоль - в cp1251, а текст - в utf-8. Можешь записать его в файл. В cp1251 очень мало символов может быть представлено.
Можно, конечно, перекодировать текст из utf-8 в cp1251 с заменами. Возможно, в PyCharm можно выставить кодировку консоли.
Отредактировано py.user.next (Фев. 16, 2016 10:56:59)
Офлайн
0
Спасибо за объяснение,добрый человек :)
Офлайн