Python 使用scrapy从静态贴图获取lat lon

Python 使用scrapy从静态贴图获取lat lon,python,python-3.x,xpath,web-scraping,scrapy,Python,Python 3.x,Xpath,Web Scraping,Scrapy,我正在尝试使用Scrapy从嵌入在网站上的静态地图中获取坐标(lat,lon)。当我检查元素时,我发现坐标正确 ,但我不知道如何得到它 我使用了response.xpath('//img[@id=“static map”]/@src').extract() 我得到 '//maps.google.com/maps/api/staticmap?center=-12.119641500000000,-77.011014800000000&zoom=16&markers=-12.1196

我正在尝试使用Scrapy从嵌入在网站上的静态地图中获取坐标(lat,lon)。当我检查元素时,我发现坐标正确 ,但我不知道如何得到它

我使用了
response.xpath('//img[@id=“static map”]/@src').extract()

我得到

'//maps.google.com/maps/api/staticmap?center=-12.119641500000000,-77.011014800000000&zoom=16&markers=-12.119641500000000,-77.011014800000000&key=AIzaSyB42QzVvI4Fz1sQMlJBHemUlH5zYH0VMIE&size=780x456&sensor=true&scale=2&signature=dl39BZVBkcNsfHm0FjeNzKw1puU='

我想在两个不同的列中得到lat和lon(-12.11964,-77.011014)

通过XPath,您可以使用子字符串函数(和*1来删除结尾的零):


使用XPath,您可以使用子字符串函数(和*1来删除结尾的零):

您可以解析url

import urllib.parse

url = '//maps.google.com/maps/api/staticmap?center=-12.119641500000000,-77.011014800000000&zoom=16&markers=-12.119641500000000,-77.011014800000000&key=AIzaSyB42QzVvI4Fz1sQMlJBHemUlH5zYH0VMIE&size=780x456&sensor=true&scale=2&signature=dl39BZVBkcNsfHm0FjeNzKw1puU='

query = urllib.parse.urlsplit(url).query
data = urllib.parse.parse_qs(query)
lat, lon = eval(data['center'][0])
print(lat, lon)
或者您可以将其视为普通文本并
split()

url = '//maps.google.com/maps/api/staticmap?center=-12.119641500000000,-77.011014800000000&zoom=16&markers=-12.119641500000000,-77.011014800000000&key=AIzaSyB42QzVvI4Fz1sQMlJBHemUlH5zYH0VMIE&size=780x456&sensor=true&scale=2&signature=dl39BZVBkcNsfHm0FjeNzKw1puU='

lat, lon = eval(url.split("center=")[1].split('&')[0])
print(lat, lon)
您可以解析url

import urllib.parse

url = '//maps.google.com/maps/api/staticmap?center=-12.119641500000000,-77.011014800000000&zoom=16&markers=-12.119641500000000,-77.011014800000000&key=AIzaSyB42QzVvI4Fz1sQMlJBHemUlH5zYH0VMIE&size=780x456&sensor=true&scale=2&signature=dl39BZVBkcNsfHm0FjeNzKw1puU='

query = urllib.parse.urlsplit(url).query
data = urllib.parse.parse_qs(query)
lat, lon = eval(data['center'][0])
print(lat, lon)
或者您可以将其视为普通文本并
split()

url = '//maps.google.com/maps/api/staticmap?center=-12.119641500000000,-77.011014800000000&zoom=16&markers=-12.119641500000000,-77.011014800000000&key=AIzaSyB42QzVvI4Fz1sQMlJBHemUlH5zYH0VMIE&size=780x456&sensor=true&scale=2&signature=dl39BZVBkcNsfHm0FjeNzKw1puU='

lat, lon = eval(url.split("center=")[1].split('&')[0])
print(lat, lon)