Python 从维基百科页面获取坐标

Python 从维基百科页面获取坐标,python,scrapy,Python,Scrapy,我正在抓取这一页: 我需要出现在那里的坐标,纬度和经度 我尝试: scrapy shell https://en.wikipedia.org/wiki/Water_Tower_Place response.xpath('//*[@id="coordinates"]/span/span/a/span[1]/span/span[1]') 但是得到一个空列表作为响应 我可以用正则表达式得到它 re.findall('latitude([^<]+)',str(response.body))

我正在抓取这一页:

我需要出现在那里的坐标,纬度和经度

我尝试:

scrapy shell https://en.wikipedia.org/wiki/Water_Tower_Place


response.xpath('//*[@id="coordinates"]/span/span/a/span[1]/span/span[1]')
但是得到一个空列表作为响应

我可以用正则表达式得到它

re.findall('latitude([^<]+)',str(response.body))
编辑:

我的错,当我打印它时,我得到了纬度

41°53′52.5〃北纬


无论哪种方式,我都想知道如何在没有regex的情况下获取值,我将依赖于特定的
纬度
经度
类:

$ scrapy shell https://en.wikipedia.org/wiki/Water_Tower_Place
>>> print response.css(".geo-dms .latitude::text").extract_first()
41°53′52.5″N
>>> print response.css(".geo-dms .longitude::text").extract_first()
87°37′20.5″W

如果要使用xpath,可以使用:

response.xpath('//span[@class="latitude"]/text()').extract()[0]
以及:


@BobDylan我在右上角的搜索栏下方看到它,它是完整的xpath,我现在看到它可以工作了,但我需要一个更通用的表达式,在这个页面上不起作用。你是怎么得到的?我使用chrome获取xpath。您是否尝试过使用DBpedia作为中间人?将
lat
long
列为字段,您可以直接以JSON或XML的形式获取数据。也许通过works请求JSON数据比解析HTML渲染更好。ypu如何获取路径?通过chorme,我得到:#坐标>span>span>a>span.geo-default>span>span。latitude@LuisRamonRamirezRodriguez有很多方法可以找到这些元素。我真的很喜欢
纬度
经度
类-它们使定位器非常可读。
坐标
id听起来也不错。因此,这里有另一种方法:
#坐标。纬度::文本
#坐标。经度::文本
-可读性和效率都很高。仅供参考,
先提取()
可以代替
提取()[0]
response.xpath('//span[@class="latitude"]/text()').extract()[0]
response.xpath('//span[@class="longitude"]/text()').extract()[0]