【问题标题】:Unable to produce the value of lat and lng using any state无法使用任何状态生成 lat 和 lng 的值
【发布时间】:2021-07-27 15:11:23
【问题描述】:

我创建了一个脚本,使用 requests 模块从 webpage 获取不同代理的名称。这是我选择产生结果的option。尽管以下脚本可以从该站点的填充结果中解析名称,但我无法弄清楚如何生成我在 params 中使用的 latlng 的值。

由于我希望从少数几个州解析名称,因此有必要以编程方式使用 latlng 的值。目前它们是硬编码的。

我试过了:

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'])

如何使用参数中需要使用的任何状态来生成 latlng 的值?

【问题讨论】:

  • 您是在问如何在给定州名的情况下获得纬度和经度?字典似乎正是您要查找的内容
  • 是的,没错。使用任何州或任何邮政编码,如77007?
  • 我想您是在问是否有办法根据州或邮政编码获取数据。如果是这种情况,那么您需要参考 API 的文档,该文档(大概)会告诉您允许哪些查询参数。之后,就是JSON响应中是否返回经纬度数据的问题了。似乎响应确实包含一个坐标键,但根据您的示例 lat 和 lng 值,它们并不完全匹配。当然,API 实现可能基于“最近匹配”的搜索
  • 您可以尝试使用pgeocode library 从邮政编码中获取纬度/经度。
  • 我想这就是我要找的@Jack Fleeting。请发布它作为答案。谢谢。

标签: python python-3.x web-scraping python-requests


【解决方案1】:

在给定邮政编码的情况下,您所面临的真正问题是寻找纬度/经度坐标的来源。它没有应有的那么琐碎,但幸运的是the pgeocode library可以在python中处理任务。

【讨论】:

    猜你喜欢
    • 2018-05-20
    • 2018-01-08
    • 2018-05-28
    • 2018-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-12
    • 1970-01-01
    相关资源
    最近更新 更多