Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python和;BS4_Python_Json_Google Maps_Beautifulsoup_Geocoding - Fatal编程技术网

使用Python和;BS4

使用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(然后对

好的,所以我正在尝试为英国的橄榄球队和球员创建一个“fixture finder”网站,我目前正在尝试使用python和Beautifulsoup实现一个web scraper,以便从google中搜索地址,然后进行地理编码并插入数据库,作为一个长的&lat,以便maps API为用户绘制出地图

我的问题是,有没有一种方法可以让我简单地使用google geocoder API检索该特定县所有俱乐部的long和lat,然后通过BeautifulSoup解析以检索生成页面的long和lat(然后对英国所有县进行冲洗和重复),如下所示: 但在县级范围内

或者,如果有人能透露一些可能从谷歌地图上删除列表的信息,因为我总觉得地图是不允许被删除的

如果您有任何见解,我将不胜感激。

使用此代码,我获得了查询“伦敦橄榄球俱乐部”的姓名和位置(以及更多信息)

您必须在上创建自己的项目,激活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)
结果:(可用键和一些名称和位置)

使用这个代码,我得到了查询“伦敦橄榄球俱乐部”的姓名和地点(以及更多信息)

您必须在上创建自己的项目,激活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