【发布时间】:2012-09-27 16:16:06
【问题描述】:
我正在创建一个 Python(使用 urllib2)解析器,其中包含非英语字符的地址。目标是找到每个地址的坐标。
当我在 Firefox 中打开此网址时:
http://maps.google.com/maps/geo?q=Czech%20Republic%2010000%20Male%C5%A1ice&output=csv
它被转换(地址框中的变化)为
http://maps.google.com/maps/geo?q=Czech Republic 10000 Malešice&output=csv
然后返回
200,6,50.0865113,14.4918052
这是一个正确的结果。
但是,如果我在 urllib2(或 Opera 浏览器)中打开相同的 url(编码,使用 %20 等),结果是
200,4,49.7715220,13.2955410
这是不正确。如何打开urllib2 中的第一个url 以获得“200,6,50.0865113,14.4918052”结果?
编辑:
使用的代码
import urllib2
psc = '10000'
name = 'Malešice'
url = 'http://maps.google.com/maps/geo?q=%s&output=csv' % urllib2.quote('Czech Republic %s %s' % (psc, name))
response = urllib2.urlopen(url)
data = response.read()
print 'Parsed url %s, result %s\n' % (url, data)
输出
Parsed url http://maps.google.com/maps/geo?q=Czech%20Republic%2010000%20Male%C5%A1ice&output=csv, result 200,4,49.7715220,13.2955410
【问题讨论】:
-
你能用 urllib2.open 指定确切的代码行吗(当你尝试时)?
-
可能重复:percent encoding URL with python(用于 Google Maps API)。
标签: python google-maps urllib google-geocoding-api