使用Python和;BS4
好的,所以我正在尝试为英国的橄榄球队和球员创建一个“fixture finder”网站,我目前正在尝试使用python和Beautifulsoup实现一个web scraper,以便从google中搜索地址,然后进行地理编码并插入数据库,作为一个长的&lat,以便maps API为用户绘制出地图 我的问题是,有没有一种方法可以让我简单地使用google geocoder API检索该特定县所有俱乐部的long和lat,然后通过BeautifulSoup解析以检索生成页面的long和lat(然后对英国所有县进行冲洗和重复),如下所示: 但在县级范围内 或者,如果有人能透露一些可能从谷歌地图上删除列表的信息,因为我总觉得地图是不允许被删除的 如果您有任何见解,我将不胜感激。使用此代码,我获得了查询“伦敦橄榄球俱乐部”的姓名和位置(以及更多信息) 您必须在上创建自己的项目,激活Web服务的使用Python和;BS4,python,json,google-maps,beautifulsoup,geocoding,Python,Json,Google Maps,Beautifulsoup,Geocoding,好的,所以我正在尝试为英国的橄榄球队和球员创建一个“fixture finder”网站,我目前正在尝试使用python和Beautifulsoup实现一个web scraper,以便从google中搜索地址,然后进行地理编码并插入数据库,作为一个长的&lat,以便maps API为用户绘制出地图 我的问题是,有没有一种方法可以让我简单地使用google geocoder API检索该特定县所有俱乐部的long和lat,然后通过BeautifulSoup解析以检索生成页面的long和lat(然后对
Places API
(桌面应用程序的没有版本)并获得PlacesAPI
-它为您提供自己的键=
(API键)
当前key=
处于活动状态,所以您可以测试代码,但我稍后将停用它
import googlemaps
gmaps = googlemaps.Client(key='AIzaSyBiC8vKEEF-MLP9a2de0PLs-S_XrEL0kSQ')
results = gmaps.places('Rugby Club, London')
for key in item.keys():
print('key:', key)
print('-----')
for item in results['results']:
print('name:', item['name'])
print('lat:', item['geometry']['location']['lat'])
print('lng:', item['geometry']['location']['lng'])
print('location:', item['geometry']['location'])
print('---')
print('-----')
#for item in results['results'][:1]:
# for key, value in item.items():
# print(key, ':', value)
结果:(可用键和一些名称和位置)
使用这个代码,我得到了查询“伦敦橄榄球俱乐部”的姓名和地点(以及更多信息)
您必须在上创建自己的项目,激活Web服务的Places API
(桌面应用程序的没有版本)并获得PlacesAPI
-它为您提供自己的键=
(API键)
当前key=
处于活动状态,所以您可以测试代码,但我稍后将停用它
import googlemaps
gmaps = googlemaps.Client(key='AIzaSyBiC8vKEEF-MLP9a2de0PLs-S_XrEL0kSQ')
results = gmaps.places('Rugby Club, London')
for key in item.keys():
print('key:', key)
print('-----')
for item in results['results']:
print('name:', item['name'])
print('lat:', item['geometry']['location']['lat'])
print('lng:', item['geometry']['location']['lng'])
print('location:', item['geometry']['location'])
print('---')
print('-----')
#for item in results['results'][:1]:
# for key, value in item.items():
# print(key, ':', value)
结果:(可用键和一些名称和位置)
如果您使用API,那么您将得到JSON(而不是HTML)形式的结果,您可以使用模块JSON
轻松地将其转换为Python目录。要从服务器获取数据,您需要像urllib
或requests
这样的模块-对于requests
,您可以使用response.json()
,并且您已经将json数据转换为字典。甚至应该有python模块与google API一起工作。如果您必须在不使用API的情况下从google map获取点,则map使用JavaScript代码在map上创建“标记”——您可以尝试在JavaScript代码中查找字符串“Marker”,以查找lat,long。请参阅谷歌文档中的Javascript代码示例:geocoder
只有在您已经拥有橄榄球队地址的情况下,才能从您的链接将地址转换为lat,long
。问题是要找到这些地址。您可以在谷歌搜索中搜索,或者在其他体育新闻门户网站上搜索。@furas感谢您的回复!我想我可能会选择从地图“标记”中删除数据。例如输入县>检索标记数据集>将标记的长/宽存储到数据库中。我只是在努力寻找HTML中的“标记”信息,如果你使用API,那么你将获得所有JSON数据,你可以轻松地将其转换为Python字典,你不必在HTML中搜索(你不需要BS4
),如果你使用API,那么你会得到JSON(而不是HTML)的结果您可以使用模块json
轻松地将其转换为Python目录。要从服务器获取数据,您需要像urllib
或requests
这样的模块-对于requests
,您可以使用response.json()
,并且您已经将json数据转换为字典。甚至应该有python模块与google API一起工作。如果您必须在不使用API的情况下从google map获取点,则map使用JavaScript代码在map上创建“标记”——您可以尝试在JavaScript代码中查找字符串“Marker”,以查找lat,long。请参阅谷歌文档中的Javascript代码示例:geocoder
只有在您已经拥有橄榄球队地址的情况下,才能从您的链接将地址转换为lat,long
。问题是要找到这些地址。您可以在谷歌搜索中搜索,或者在其他体育新闻门户网站上搜索。@furas感谢您的回复!我想我可能会选择从地图“标记”中删除数据。例如输入县>检索标记数据集>将标记的长/宽存储到数据库中。我正在努力在HTML中找到“标记”信息,如果您使用API,那么您将获得所有JSON数据,您可以轻松地将其转换为Python字典,并且不必在HTML中搜索(您不需要BS4
)