如何解决我们可以从 URL 中的经度和纬度坐标派生地名吗?
我想知道是否有办法从经纬度坐标中获取某种地名或地点描述。我在这里发帖之前用谷歌搜索了一个解决方案,但我没有找到任何东西。我找到了关于地理编码和反向地理编码的信息,这些很有趣,但我认为我无法将其付诸实践,因为我在这里试图完成。如果我错了,请纠正我!
也许有某种 API 调用可以让人们做这种事情。不确定。也许这是一个屏幕抓取练习。如有必要,我可以使用 Selenium 或 Beautiful Soup。我想要做的是循环遍历 Pandas DF 中的记录,并根据 lat=40.76 和 lon=-73.97 获得一致的内容,例如“洋基体育场”。我所有的 lat 和 lng 坐标都是正确的,但不幸的是人们几乎可以在“place_name”字段中输入他们想要的任何内容。所以,我得到了“Yankee_Stadium”、“Yankee_Stad”、“Yankee_Subway”、“Stad_Yankees”、“Yank_Stad”以及各种其他描述组合,这真的是一个地方。
这是 Google 地图的屏幕截图,网址中包含 lon 和 lat。
我认为从 lat 和 ln 坐标中获取地点描述会非常有用!
这只是一个疯狂的猜测,但也许代码会这样开始。
from selenium.webdriver import ActionChains
from selenium import webdriver
driver = webdriver.Chrome('C:\\Users\\chromedriver.exe')
driver.get ('https://www.google.com/maps/place/Yankee+Stadium/@40.8296466,-73.9283685,17z/data=!3m1!4b1!4m5!3m4!1s0x89c2f42c5ae76971:0x4940c3d9559a1e08!8m2!3d40.8296426!4d-73.9261745')
或者硒可能是矫枉过正的,而美丽的汤是去这里的方式......就像这样......
from bs4 import BeautifulSoup
import requests
#Pandas/numpy for data manipulation
import pandas as pd
import numpy as np
#load URLs we want to scrape into an array
BASE_URL = ['https://www.google.com/maps/place/Yankee+Stadium/@40.8296466,17z/data=!3m1!4b1!4m5!3m4!1s0x89c2f42c5ae76971:0x4940c3d9559a1e08!8m2!3d40.8296426!4d-73.9261745']
#loading empty array for board members
places = []
#Loop through our URLs we loaded above
for b in BASE_URL:
html = requests.get(b).text
soup = BeautifulSoup(html,"html.parser")
#identify table we want to scrape
place_table = soup.find('table',{"class" : "dataTable"})
try:
#loop through table,grab each of the 4 columns shown (try one of the links yourself to see the layout)
for row in place_table.find_all('tr'):
cols = row.find_all('td')
places.append(b,cols[0].text.strip())
except:
print('nothing found...')
我从来不擅长这种屏幕抓取的东西。无论如何,我想要的字符串似乎在此“https://www.google.com/maps/place/”之后和第一组经纬度坐标之前!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。