使用带有密码认证代理的geopy

2024-06-30 14:55:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试用一组坐标系来使用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

我工作的环境需要一个经过身份验证的代理, 例如,让我们说

^{pr2}$

考虑到需要经过身份验证的代理才能正常工作,我研究了geopy github page和{a2},即使提到了代理,也找不到一个有效的url。在

似乎支持发送带有'proxies'参数的字典,但是没有提到任何用户/密码认证变体。在

这样的事情有什么办法可行吗?在

geolocator = GoogleV3(proxies={'http': proxy_address,
                               'password': my_user + my_pass})

编辑:拼写检查


Tags: from身份验证代理addressmylocationprint坐标系
1条回答
网友
1楼 · 发布于 2024-06-30 14:55:55

对于那些可能遇到同样问题的人,我已经找到了一个解决我的问题的方法,它涉及到操作系统模块。在

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()

相关问题 更多 >