我对如何从Python中的URL提取坐标(Lat,Long)感到有点迷失。
总是我会收到这样的网址:
https://www.testweb.com/cordi?ll=41.403781,2.1896&z=17&pll=41.403781,2.1896
我需要提取这个URL的第二组(在这种情况下:41.403781,2.1896)只是说,并不总是第一组和第二组coords将是相同的。
我知道,这可以通过一些正则表达式完成,但我对它不够好。
答案 0 :(得分:1)
以下是如何使用正则表达式执行此操作:
import re
m = re.search(r'pll=(\d+\.\d+),(\d+\.\d+)', 'https://www.testweb.com/cordi?ll=41.403781,2.1896&z=17&pll=41.403781,2.1896')
print m.groups()
结果:('41.403781', '2.1896')
您可能需要查看模块urlparse
以获得更强大的解决方案。
答案 1 :(得分:1)
urlparse有一个函数“urlparse”和“parse_qs”可靠地访问这些数据,如下所示
$ python
Python 2.6.6 (r266:84292, Jul 23 2015, 15:22:56)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> u="""https://www.testweb.com/cordi?ll=41.403781,2.1896&z=17&pll=41.403781,2.1896"""
>>> import urlparse
>>> x=urlparse.urlparse(u)
>>> x
ParseResult(scheme='https', netloc='www.testweb.com', path='/cordi', params='', query='ll=41.403781,2.1896&z=17&pll=41.403781,2.1896', fragment='')
>>> x.query
'll=41.403781,2.1896&z=17&pll=41.403781,2.1896'
>>> urlparse.parse_qs(x.query)
{'ll': ['41.403781,2.1896'], 'z': ['17'], 'pll': ['41.403781,2.1896']}
>>>