Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 12, 2009 16:48:47

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

urllib. Код страницы отличается от кода в браузере

Привет! Подскажите:
При входе через браузер по ссылке вида: http://maps.google.com/maps/geo?q=Бирюлевская%20ул.,%20д.13,%20к.4,%20Russia,%20Moscow получаем нужный правильный результат:

{
"name": "Бирюлевская ул., д.13, к.4, Russia, Moscow",
"Status": {
"code": 200,
"request": "geocode"
},
"Placemark": [ {
"id": "p1",
"address": "Российская Федерация, 115404, город Москва, Бирюлевская ул., 13 корпус 4",
"AddressDetails": {"Country": {"CountryNameCode": "RU","CountryName": "Российская Федерация","AdministrativeArea": {"AdministrativeAreaName": "город Москва","Locality": {"LocalityName": "город Москва","Thoroughfare":{"ThoroughfareName": "Бирюлевская ул."},"PostalCode": {"PostalCodeNumber": "115404"}}}},"Accuracy": 6},
"ExtendedData": {
"LatLonBox": {
"north": 55.6004837,
"south": 55.5941885,
"east": 37.6665123,
"west": 37.6602171
}
},
"Point": {
"coordinates": [ 37.6633647, 55.5973361, 0 ]
}
} ]
}
А когда забираем эту страничку urllib'ом (data = urllib.urlopen(url).read()), получаем другой код:
http://maps.google.com/maps/geo?q=Бирюлевская%20ул.,%20д.13,%20к.4,%20Russia,%20Moscow
{
"name": "Бирюлевская ул., д.13, к.4, Russia, Moscow",
"Status": {
"code": 602,
"request": "geocode"
}
}
Код 602 - “не найден адрес”.

В чем может быть проблема?

Заранее благодарю!



Офлайн

#2 Июнь 12, 2009 17:53:35

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

urllib. Код страницы отличается от кода в браузере

spalk
data = urllib.urlopen(url).read()
а что есть url здесь?



Офлайн

#3 Июнь 12, 2009 18:18:03

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

urllib. Код страницы отличается от кода в браузере

Daevaorn
spalk
data = urllib.urlopen(url).read()
а что есть url здесь?
такой же как ввожу в браузер: http://maps.google.com/maps/geo?q=Бирюлевская%20ул.,%20д.13,%20к.4,%20Russia,%20Moscow



Офлайн

#4 Июнь 12, 2009 18:21:03

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

urllib. Код страницы отличается от кода в браузере

spalk
такой же как ввожу в браузер: http://maps.google.com/maps/geo?q=Бирюл … ,%20Moscow
Только учтите, что браузер любезно этот урл кодирует… Для этого в питоне кодировать параметры урла нужно явно:
from urllib import urlencode
url = 'http://maps.google.com/maps/geo?' +\
urlencode({'q': 'Бирюлевская ул., д.13, к.4, Russia, Moscow'})



Офлайн

#5 Июнь 12, 2009 20:49:44

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

urllib. Код страницы отличается от кода в браузере

Daevaorn, спасибо!
Но проблема заключалась в другом: когда адрес http://maps.google.com/maps/geo?q=… вводился в браузере, зона .com подменялась на зону .ru и адрес (городской) находился. В питоне же эта замена видимо не просходила и адрес искался видимо по каким-то не русскоязычным базам. Как-то так. В общем, если адрес заменить на http://maps.google.ru/maps/geo?q=… , то русскоязычные адреса будут находиться нормально!



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version