所以我有一个字符串,其中有一个URL。
URL /字符串是这样的:
https://example.com/main/?code=32ll48hma6ldfm01bpki&data=57600&data2=aardappels
我想得到code
,但我不知道怎么做。我查看了.split()
方法。但我不认为这是有效的。而且我无法找到让它运转的方法。
答案 0 :(得分:4)
使用urlparse模块中的parse_qs和urlparse:
from urlparse import urlparse, parse_qs
# For Python 3:
# from urllib.parse import urlparse, parse_qs
url = ' https://example.com/main'
url += '/?code=32ll48hma6ldfm01bpki&data=57600&data2=aardappels'
parsed = urlparse(url)
code = parse_qs(parsed.query).get('code')[0]
它完全符合您的要求。
答案 1 :(得分:0)
正如@IronFist所提到的,.split()方法只有在你认为没有'&'在代码参数中。如果没有,您可以多次使用.split()方法并获得所需的代码参数:
url = "https://example.com/main/?code=32ll48hma6ldfm01bpki&data=57600&data2=aardappels"
code = url.split('/?')[1].split('&')[0]
答案 2 :(得分:0)
使用正则表达式:
>>> import re
>>> url = 'https://example.com/main/?code=32ll48hma6ldfm01bpki&data=57600&data2=aardappels'
>>> code = re.search("code=([0-9a-zA-Z]+)&?", url).group(1)
>>> print code
32ll48hma6ldfm01bpki
答案 3 :(得分:0)
有很多方法可以做到这一点!更简单的方法是使用urlparse。另一种方法是使用正则表达式,但专家建议在URL上使用正则表达式可能很乏味,代码变得非常难以维护。
另一种简单的方法如下所示,
str1 = 'https://example.com/main/?code=32ll48hma6ldfm01bpki&data=57600&data2=aardappels'
codeStart = str1.find('code=')
codeEnd = str1.find('&data=')
print str1[codeStart+5:codeEnd]