Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 15, 2016 20:56:50

denmariupol
От:
Зарегистрирован: 2011-09-06
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Grab+кириллица

Доброй ночи.

# -*- 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')
на выходе ВоронежÑ�каÑ� облаÑ�ть

ЧЯДНТ?Спасибо.



Офлайн

#2 Фев. 15, 2016 23:15:32

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2627
Репутация: +  61  -
Профиль   Отправить e-mail  

Grab+кириллица

а ы уверены что сайт на UTF-8 а не скажем cp1251 а то как раз похоже…



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Фев. 15, 2016 23:50:50

denmariupol
От:
Зарегистрирован: 2011-09-06
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Grab+кириллица

<meta http-equiv=“Content-Type” content=“text/html; charset=utf-8”/>
так написано в исходном коде страницы по ссылке выше



Офлайн

#4 Фев. 16, 2016 09:23:32

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Grab+кириллица

>>> 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()
Воронежская область
>>>



Офлайн

#5 Фев. 16, 2016 10:14:22

denmariupol
От:
Зарегистрирован: 2011-09-06
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Grab+кириллица

В 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>
В чем может быть дело?



Офлайн

#6 Фев. 16, 2016 10:54:40

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Grab+кириллица

Консоль - в cp1251, а текст - в utf-8. Можешь записать его в файл. В cp1251 очень мало символов может быть представлено.
Можно, конечно, перекодировать текст из utf-8 в cp1251 с заменами. Возможно, в PyCharm можно выставить кодировку консоли.



Отредактировано py.user.next (Фев. 16, 2016 10:56:59)

Офлайн

#7 Фев. 16, 2016 11:00:18

denmariupol
От:
Зарегистрирован: 2011-09-06
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Grab+кириллица

Спасибо за объяснение,добрый человек :)



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version