首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从url路径获取参数?

问如何从url路径获取参数?
EN

Stack Overflow用户
提问于 2018-06-04 01:15:09
回答 1查看 145关注 0票数 1

介绍性标签:python \x{##**$$}\x{e76f}\x{e76f}{##**$$}##**#.##**$#.

用过的语言:Python3.x

用过的模块:urlopen \

状态:尚未解决

对问题的描述:

我有网址:

代码语言:javascript
复制
 http://mapy.cz/#mm=TTtP@x=133054720@y=135947904@z=13

它(在web浏览器中)将我重定向到另一个网址:

代码语言:javascript
复制
 https://mapy.cz/zakladni?x=14.412346408814274&y=50.08612581835152&z=13

我想从路径获得参数x和y。

代码语言:javascript
复制
 x = 14.412346408814274
 y = 50.08612581835152

(地理坐标以十进制为单位)

当我使用:

代码语言:javascript
复制
 from urllib.request import urlopen

 url = "http://mapy.cz/#mm=TTtP@x=133168128@y=133141248@z=13"
 print(urlopen(url).url)

它会回报我:

代码语言:javascript
复制
 https://mapy.cz/

当我使用:

代码语言:javascript
复制
with urlopen(url) as conn:
    newUrl = conn.geturl()        
    print (newUrl)

它会回报我:

代码语言:javascript
复制
 https://mapy.cz/        

当我使用:

代码语言:javascript
复制
with urlopen(url) as conn:
    print (conn.info())

它会回报我:

代码语言:javascript
复制
Server: nginx
Date: Sun, 03 Jun 2018 23:24:31 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Cache-Control: max-age=0
Expires: Sun, 03 Jun 2018 23:24:31 GMT
Strict-Transport-Security: max-age=31536000

当我使用:

代码语言:javascript
复制
with urlopen(url) as conn:
    print (conn.__dict__)

它会回报我:

代码语言:javascript
复制
{'fp': <_io.BufferedReader name=1404>, 'debuglevel': 0, '_method': 'GET', 'headers': <http.client.HTTPMessage object at 0x000000000DD48518>, 'msg': 'OK', 'version': 11, 'status': 200, 'reason': 'OK', 'chunked': True, 'chunk_left': None, 'length': None, 'will_close': True, 'code': 200, 'url': 'https://mapy.cz/'}

没有提到斜杠后面的参数/路径。既不是原始的网址也不是下面的网址。

当我使用来自What is the quickest way to HTTP GET in Python?的代码时

代码语言:javascript
复制
import urllib.request
contents = urllib.request.urlopen("url").read()

它会回报我:

代码语言:javascript
复制
'raw html...'

我不想打开/下载html并从html中挖掘这些参数。

EN

回答 1

Stack Overflow用户

发布于 2018-06-04 01:23:11

如果您使用requests (这是您应该使用的),下面是您的特定URL的解决方案:

代码语言:javascript
复制
import requests

URL = 'http://mapy.cz/#mm=TTtP@x=133054720@y=135947904@z=13'

response = requests.get(URL)

if response.history:
    print("Request was redirected")
    for resp in response.history:
        print((resp.status_code, resp.url,))
        # getting x, y and z
        parts = resp.url.split('@')
        x = parts[1].split('=')[1]
        y = parts[2].split('=')[1]
        z = parts[3].split('=')[1]
        print("X {} Y {} Z {}".format(x, y, z))

    print("Final destination:")
    print((response.status_code, response.url,))
else:
    print("Request was not redirected")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50672383

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档