将 geopy 与密码验证代理一起使用
Using geopy with password authenticated proxy
我正在尝试将 geopy 与一组坐标一起使用,一开始一切正常。
from geopy.geocoders import GoogleV3
# some coordinates as example
latitude, longitude = 24.47646, 85.3095
geolocator = GoogleV3()
location = geolocator.geocode('%s, %s' (latitude, longitude))
address = location.address
print address
# this would print something like
Unnamed Road, Burhia Ahri, Jharkand 825406, India
我正在处理的环境需要经过身份验证的代理,
出于示例目的,让我们说
proxy_address = 'http://proxy.tests.mydomain'
proxy_port = 3128
proxy_user = 'my_user'
proxy_pass = 'my_pass'
假设需要经过身份验证的代理才能使其正常工作,我查看了 geopy github page and the docs,即使提到了代理,也没有找到一个有效的 url。
似乎支持发送带有 'proxies' 参数的字典,但没有任何地方提到 user/password 已验证变体。
有什么方法可以实现这样的事情吗?
geolocator = GoogleV3(proxies={'http': proxy_address,
'password': my_user + my_pass})
编辑:拼写
对于可能遇到同样问题的os,我找到了解决我的问题的方法,涉及使用 os 模块。
import os
def set_proxy():
proxy_addr = 'http://{user}:{passwd}@{address}:{port}'.format(
user='user_example', passwd='pass_example',
address='address_example', port=int('port_example'))
os.environ['http_proxy'] = proxy_addr
os.environ['https_proxy'] = proxy_addr
def unset_proxy():
os.environ.pop('http_proxy')
os.environ.pop('https_proxy')
set_proxy()
geolocator = GoogleV3()
location = geolocator.geocode('%s, %s' % (latitude, longitude), timeout=10)
address = location.address
unset_proxy()
我正在尝试将 geopy 与一组坐标一起使用,一开始一切正常。
from geopy.geocoders import GoogleV3
# some coordinates as example
latitude, longitude = 24.47646, 85.3095
geolocator = GoogleV3()
location = geolocator.geocode('%s, %s' (latitude, longitude))
address = location.address
print address
# this would print something like
Unnamed Road, Burhia Ahri, Jharkand 825406, India
我正在处理的环境需要经过身份验证的代理, 出于示例目的,让我们说
proxy_address = 'http://proxy.tests.mydomain'
proxy_port = 3128
proxy_user = 'my_user'
proxy_pass = 'my_pass'
假设需要经过身份验证的代理才能使其正常工作,我查看了 geopy github page and the docs,即使提到了代理,也没有找到一个有效的 url。
似乎支持发送带有 'proxies' 参数的字典,但没有任何地方提到 user/password 已验证变体。
有什么方法可以实现这样的事情吗?
geolocator = GoogleV3(proxies={'http': proxy_address,
'password': my_user + my_pass})
编辑:拼写
对于可能遇到同样问题的os,我找到了解决我的问题的方法,涉及使用 os 模块。
import os
def set_proxy():
proxy_addr = 'http://{user}:{passwd}@{address}:{port}'.format(
user='user_example', passwd='pass_example',
address='address_example', port=int('port_example'))
os.environ['http_proxy'] = proxy_addr
os.environ['https_proxy'] = proxy_addr
def unset_proxy():
os.environ.pop('http_proxy')
os.environ.pop('https_proxy')
set_proxy()
geolocator = GoogleV3()
location = geolocator.geocode('%s, %s' % (latitude, longitude), timeout=10)
address = location.address
unset_proxy()