【发布时间】:2021-07-27 15:11:23
【问题描述】:
我创建了一个脚本,使用 requests 模块从 webpage 获取不同代理的名称。这是我选择产生结果的option。尽管以下脚本可以从该站点的填充结果中解析名称,但我无法弄清楚如何生成我在 params 中使用的 lat 和 lng 的值。
由于我希望从少数几个州解析名称,因此有必要以编程方式使用 lat 和 lng 的值。目前它们是硬编码的。
我试过了:
import requests
from pprint import pprint
link = 'https://www.ibba.org/wp-json/brokers/geo'
params = {
'lat': '40.3607',
'lng': '-74.3693',
'miles': '250',
'specialties': '',
'cbi': ''
}
with requests.Session() as s:
s.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'
res = s.get(link,params=params)
for item in res.json()['features']:
print(item['geometry']['properties']['name'])
如何使用参数中需要使用的任何状态来生成
lat和lng的值?
【问题讨论】:
-
您是在问如何在给定州名的情况下获得纬度和经度?字典似乎正是您要查找的内容
-
是的,没错。使用任何州或任何邮政编码,如
77007? -
我想您是在问是否有办法根据州或邮政编码获取数据。如果是这种情况,那么您需要参考 API 的文档,该文档(大概)会告诉您允许哪些查询参数。之后,就是JSON响应中是否返回经纬度数据的问题了。似乎响应确实包含一个坐标键,但根据您的示例 lat 和 lng 值,它们并不完全匹配。当然,API 实现可能基于“最近匹配”的搜索
-
您可以尝试使用pgeocode library 从邮政编码中获取纬度/经度。
-
我想这就是我要找的@Jack Fleeting。请发布它作为答案。谢谢。
标签: python python-3.x web-scraping python-requests