Апну ка я тему!
Программа:
# -*- coding: UTF-8 -*-
from grab import *
g = Grab(log_file='geo.html')
g.setup(proxy='proxy', proxy_type='http', proxy_userpwd="")
x=raw_input("Sity")
y=raw_input("Street")
z=raw_input("Type of street")
n=raw_input("Number")
l="http://geocode-maps.yandex.ru/1.x/?geocode=+"+x+",+"+y+"+"+z+",+"+n
print type(l),l
g.go(l)
print type(l),(l)
stroka=g.doc.select("//*").text()
print "Your location:",stroka.encode("cp1251")
Так выглядит setup:
from distutils.core import setup
import py2exe
import sys
reload(sys)
if hasattr(sys,"setdefaultencoding"):
sys.setdefaultencoding("cp1251")
setup(console=['latlong.py'], options = {"py2exe": {"includes": ["pycurl","lxml",'lxml.etree', 'lxml._elementpath', 'grab','grab.ext','grab.ext.text','grab.transport','grab.transport.curl','grab.tools' ],"compressed": 1, "optimize": 2,"packages": ['encodings'] }})
При запуске в питоне выдает:
<type 'unicode'> http://geocode-maps.yandex.ru/1.x/?geocode=+Санкт-петербург,++,+
<type 'unicode'> http://geocode-maps.yandex.ru/1.x/?geocode=+Санкт-петербург,++,+
Your location: Санкт-петербург, , 1 10 locality Россия, Санкт-Петербург other Санкт-Петербург RU Россия Северо-Западный федеральный округ Санкт-Петербург Санкт-Петербург Россия Санкт-Петербург 30.042834 59.744465 30.568322 60.090935 30.315868 59.939095
При запуске exe:
Санкт-петербург <type 'str'>
<type 'str'> http://geocode-maps.yandex.ru/1.x/?geocode=+Санкт-петербург,++,+
<type 'str'> http://geocode-maps.yandex.ru/1.x/?geocode=+Санкт-петербург,++,+
Your location: С нкт-петербург, , 0 10
Что происходит с запросом? Из ответа exe видно что на сайт приходит не Санкт-петербург а С нкт-петербург, на каком этапе букву конфискуют?