Уведомления

Группа в Telegram: @pythonsu

#1 Май 29, 2012 05:39:37

net_del
От:
Зарегистрирован: 2010-12-29
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

перекодировка, снова

вобщем в терминале вот такие иероглифы.

D<�ȸ�D���c���?�__L6,�`?PD�E�`&��Z|��Q��R��,�����ܰ
conn = urllib2.Request(host, post, headers)
data = urllib2.urlopen(conn)
st=data.read()

исходная страница на сервере в cp1251, перепробовал различные варианты и сочетания encode, decode, не понимаю что и откуда мне нужно.
декодер лебедева сказал
7-bit ASCII → MacCyrillic + ISO-8859-5 → KOI8-R
но в читабельный вид так и не привел, получилось:
╘???ƒ???с???З?ООШґР?пЗ–ƒ?≈?п¶??╞?Л??—??“??Р??????

python 2.6.5, ubuntu, помогите.



Офлайн

#2 Май 29, 2012 07:49:03

Piton23
От:
Зарегистрирован: 2011-10-17
Сообщения: 139
Репутация: +  5  -
Профиль   Отправить e-mail  

перекодировка, снова

А твой скрипт в 3 строки в какой кодировке?, и главное в начале какой заголовок стоит насчет кодировки?

Офлайн

#3 Май 29, 2012 12:30:40

net_del
От:
Зарегистрирован: 2010-12-29
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

перекодировка, снова

в начало пробовал добавлять:
# -*- coding: UTF-8 -*-
не помогает.



Офлайн

#4 Май 29, 2012 12:56:25

johniek_comp
Зарегистрирован: 2012-05-28
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

перекодировка, снова

Перекодируй страницу в UTF-8

Офлайн

#5 Май 29, 2012 13:58:18

Piton23
От:
Зарегистрирован: 2011-10-17
Сообщения: 139
Репутация: +  5  -
Профиль   Отправить e-mail  

перекодировка, снова

че показывает при
1.
st=data.read()
print st.decode('cp1251')
2.
st=data.read()
print st.decode('cp1251').encode('utf-8')
?

А лучше вставь весь скрипт, с заголовками, с вышеуказанными примерами. И файло перекодировал в utf8?

Офлайн

#6 Май 29, 2012 14:19:09

net_del
От:
Зарегистрирован: 2010-12-29
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

перекодировка, снова

import urllib
import urllib2
import re
import sys
import math
import os
import time
mpass = ''
mail = ''
host = 'http://login.vk.com/?act=login'
post = urllib.urlencode({'email': mail, 'expire':'', 'pass': mpass, 'vk': ''})
headers = {'Host' : 'vk.com',
    'User-Agent' : 'Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9.2.23) Gecko/20110921 Ubuntu/10.04 (lucid) Firefox/3.6.23',
    'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
    'Accept-Language' : 'ru,en-us;q=0.7,en;q=0.3',
    'Accept-Encoding' : 'gzip,deflate',
    'Accept-Charset' : 'windows-1251,utf-8;q=0.7,*;q=0.7',
    'Keep-Alive' : '115',
    'Connection' : 'keep-alive',
    'Referer' : 'http://vk.com/index.php',
    'Cookie' : 'remixlang=0; remixchk=5; remixflash=11.2.202; remixdt=0',
    'Cache-Control' : 'max-age=0'}
conn = urllib2.Request(host, post, headers)
data = urllib2.urlopen(conn)
st=data.read()
print st[10:40]
#print st.decode('cp1251')[10:40]
#print st.decode('cp1251').encode('utf-8')[10:40]



Отредактировано net_del (Май 29, 2012 14:55:39)

Прикреплённый файлы:
attachment knt.py (1,1 KБ)

Офлайн

#7 Май 29, 2012 16:06:51

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

перекодировка, снова

Выкинуть бы urllib



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version