将URL的标题部分拆分为单独的列--Python

hai*_*men 1 python urlparse python-2.7

假设我有一个URL如下:

http://sitename.com/pathname?title=moviename&url=VIDEO_URL
Run Code Online (Sandbox Code Playgroud)

我想解析这个URL,分别单独获取标题部分和url部分.

我试过以下,

from urlparse import urlparse
q = urlparse('http://sitename.com/pathname?title=moviename&url=VIDEO_URL')
Run Code Online (Sandbox Code Playgroud)

在我这样做之后,我得到以下结果,

q
ParseResult(scheme='http', netloc='sitename.com', path='/pathname', params='', query='title=moviename&url=VIDEO_URL', fragment='')
Run Code Online (Sandbox Code Playgroud)

并且q.query,

'title=moviename&url=VIDEO_URL'
Run Code Online (Sandbox Code Playgroud)

我无法在这里使用q.query.title或q.query.url.有没有办法可以访问它?我想将url和title部分分开分成不同的列.我们可以这样做吗或者我们可以编写一个子字符串方法来检查以"title"开头并以"&"结尾并拆分它吗?

谢谢

Aar*_*sen 7

您可以urlparse.parse_qs在此处使用参数字典.

from urlparse import urlparse, parse_qs
q = urlparse('http://sitename.com/pathname?title=moviename&url=VIDEO_URL')
qs = parse_qs(q.query)
print qs["title"] # moviename
print qs["url"] # VIDEO_URL
Run Code Online (Sandbox Code Playgroud)

这是解析URL参数的最可靠方法:要好得多split.