【问题标题】:Python Code to Parse & Retrieve value from URL string从 URL 字符串解析和检索值的 Python 代码
【发布时间】:2017-05-12 03:14:23
【问题描述】:

我有一些 Dot Net 代码可以解析和检索 URL 字符串中的值。

但是,我想执行相同的功能,但现在改用 python 代码。

点网代码sn-p如下:

string queryString = string.Empty;
string application_id = string.Empty;
string currentURL = Browser.getDriver.Url;
Uri url = new Uri(currentURL);
string query_String = url.Query;
application_id = query_String.Split(new char[] { '=' }).Last();

提前致谢

【问题讨论】:

  • 我们需要更多信息,您是否会在网络框架内以DjangoFlask 运行您的代码?因为你的代码的最后一行在 Python 上几乎相同,所以我假设你想要 python 中的整个功能:从检索 URL 到去除它的 id。

标签: python parsing url


【解决方案1】:

第一个,最后一个 = query_String.split('=')

【讨论】:

  • 如果查询字符串中有多个参数(如"size=large&color=blue")会报错。
【解决方案2】:

如果有可用的标准库函数,最好总是使用它们。 Python 3 有 urllib.parse(如果你还在 Py2 上,它是 urlparse)。使用该模块的urlparse 方法提取url的查询部分('?'之后的东西)。然后parse_qs 会将此查询转换为key:list 值的字典 - 这些值是用于处理具有重复键的查询字符串的列表。

url = 'http://www.somesite.blah/page?id=12345&attr=good&attr=bad&attr=ugly'

try:
    from urllib.parse import urlparse, parse_qs
except ImportError:
    # still using Python 2? time to move up
    from urlparse import urlparse, parse_qs

parts = urlparse(url)
print(parts)
query_dict = parse_qs(parts.query)
print(query_dict)
print(query_dict['id'][0])

打印:

ParseResult(scheme='http', netloc='www.somesite.blah', path='/page', params='', 
            query='id=12345&attr=good&attr=bad&attr=ugly', fragment='')

{'attr': ['good', 'bad', 'ugly'], 'id': ['12345']}
12345

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-10
    • 1970-01-01
    • 2015-11-08
    • 2013-06-22
    • 2016-11-21
    相关资源
    最近更新 更多