Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как декодировать урл 
V
    Опции темы
kulibinka
Дата 16.2.2007, 05:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 20.11.2006

Репутация: 2
Всего: 4



в лог-файле вылезло такое: 

'91.124.107.8 - - [13/Feb/2007:08:06:56 +0000] "GET / HTTP/1.1" 200 26623 "http://www.google.com.ua/search?client=firefox-a&rls=org.mozilla%3Aru%3Aofficial&channel=s&hl=ru&q=%D0%A0%D0%B0%D0%B7%D0%B2%D0%B8%D1%82%D0%B8%D0%B5+%D0%B2%D0%BD%D0%B8%D0%BC%D0%B0%D0%BD%D0%B8%D1%8F+%D1%83+%D0%B4%D0%BE%D1%88%D0%BA%D0%BE%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2&meta=&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google" "Mozilla/5.0 (Windows; U; Windows NT 5.0; ru; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"'

разбираясь по какому же запросу оно ко мне попало, пытаюсь декодировать строку:

Код

import urllib

s = '91.124.107.8 - - [13/Feb/2007:08:06:56 +0000] "GET / HTTP/1.1" 200 26623 "http://www.google.com.ua/search?client=firefox-a&rls=org.mozilla%3Aru%3Aofficial&channel=s&hl=ru&q=%D0%A0%D0%B0%D0%B7%D0%B2%D0%B8%D1%82%D0%B8%D0%B5+%D0%B2%D0%BD%D0%B8%D0%BC%D0%B0%D0%BD%D0%B8%D1%8F+%D1%83+%D0%B4%D0%BE%D1%88%D0%BA%D0%BE%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2&meta=&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google" "Mozilla/5.0 (Windows; U; Windows NT 5.0; ru; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"'

s = urllib.unquote(s)
s.decode('cp1251')
print s

f = open('file.txt', 'w')
f.write(s)
f.close()


а в файл все равно пишется в кодировке утф-8, а хочется в 1251.
что я делаю не так?
PM MAIL   Вверх
diam
Дата 16.2.2007, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 348
Регистрация: 23.1.2005
Где: Екатеринбург

Репутация: 3
Всего: 16



Цитата(kulibinka @  16.2.2007,  08:27 Найти цитируемый пост)
что я делаю не так? 

Код

s = urllib.unquote(s).encode('cp1251')

PM MAIL   Вверх
kulibinka
Дата 16.2.2007, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 20.11.2006

Репутация: 2
Всего: 4



Да если бы... ошибка вылазит 


Код

    text = urllib.unquote(text).encode(coding_to)
  File "C:\Python24\lib\encodings\cp1251.py", line 18, in encode
    return codecs.charmap_encode(input,errors,encoding_map)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)

PM MAIL   Вверх
pythonwin
Дата 16.2.2007, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 2529
Регистрация: 18.4.2006
Где: за компом

Репутация: 14
Всего: 36



kulibinka, посмотри http://www.rupy.ru/member/5/#paper-6 может пригодиться
PM WWW GTalk Jabber   Вверх
kulibinka
Дата 16.2.2007, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 191
Регистрация: 20.11.2006

Репутация: 2
Всего: 4



pythonwin, спасибо smile
Поборол.

Вот рабочий код:

Код

import urllib

s = '91.124.107.8 - - [13/Feb/2007:08:06:56 +0000] "GET / HTTP/1.1" 200 26623 "http://www.google.com.ua/search?client=firefox-a&rls=org.mozilla%3Aru%3Aofficial&channel=s&hl=ru&q=%D0%A0%D0%B0%D0%B7%D0%B2%D0%B8%D1%82%D0%B8%D0%B5+%D0%B2%D0%BD%D0%B8%D0%BC%D0%B0%D0%BD%D0%B8%D1%8F+%D1%83+%D0%B4%D0%BE%D1%88%D0%BA%D0%BE%D0%BB%D1%8C%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2&meta=&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA+%D0%B2+Google" "Mozilla/5.0 (Windows; U; Windows NT 5.0; ru; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1"'

s = urllib.unquote(s)
s = s.decode('utf-8')
s = s.encode('cp1251')

f = open('file.txt', 'w')
f.write(s)
f.close()

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0679 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.