Найти - Пользователи
Полная версия: urllib. Код страницы отличается от кода в браузере
Начало » Python для новичков » urllib. Код страницы отличается от кода в браузере
1
spalk
Привет! Подскажите:
При входе через браузер по ссылке вида: 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 - “не найден адрес”.

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

Заранее благодарю!
Александр Кошелев
spalk
data = urllib.urlopen(url).read()
а что есть url здесь?
spalk
Daevaorn
spalk
data = urllib.urlopen(url).read()
а что есть url здесь?
такой же как ввожу в браузер: http://maps.google.com/maps/geo?q=Бирюлевская%20ул.,%20д.13,%20к.4,%20Russia,%20Moscow
Александр Кошелев
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'})
spalk
Daevaorn, спасибо!
Но проблема заключалась в другом: когда адрес http://maps.google.com/maps/geo?q=… вводился в браузере, зона .com подменялась на зону .ru и адрес (городской) находился. В питоне же эта замена видимо не просходила и адрес искался видимо по каким-то не русскоязычным базам. Как-то так. В общем, если адрес заменить на http://maps.google.ru/maps/geo?q=… , то русскоязычные адреса будут находиться нормально!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB