1
Delbert 2014-12-17 10:39:01 +08:00
先用=进行split,
之后对每个元素用&进行split, 替换掉[0], 依次循环呗。 |
2
kmvan 2014-12-17 10:48:13 +08:00
py 这么麻烦,果然 php 才是最好的语言
|
3
timonwong 2014-12-17 10:54:13 +08:00
bits = list(urlparse.urlparse(url))
qs = urlparse.parse_qs(bits[4]) # 注意value是一个list # 修改qs,略 bits[4] = urllib.urlencode(qs, True) url = urlparse.urlunparse(bits) |
4
realityone 2014-12-17 10:54:26 +08:00 via iPhone
也可以对&来split,然后再对=split
替换掉之后join回来 这些参数有点奇怪啊… |
5
jarlyyn 2014-12-17 11:09:29 +08:00
感觉你是需要克隆一个字典
|
6
jarlyyn 2014-12-17 11:11:24 +08:00
|
7
hack2012 OP 有人能写出一个完整的代码吗?
|
9
kingxsp 2014-12-17 14:53:01 +08:00
purl 库应该是你需要的
|
10
kmvan 2014-12-17 15:47:53 +08:00 via Android
@hack2012 哥,你用php折腾一个出来也可以的呀,我好参考改成python版的。
参考 wp 的 add_query_arg(). |
13
mythhack 2014-12-17 19:31:33 +08:00
大概是 拆分?号 然后拆分=号 然后你就懂了
|
14
robbielj 2014-12-17 19:55:27 +08:00 1
http://ideone.com/Jbfmst
``` payloads = ('../boot.ini','../etc/passwd','../windows/win.ini','../../boot.ini','../../etc/passwd') s1 = ['123']*5 s2 = ['456']*5 s3 = ['ooo']*5 a = zip(payloads, s2, s3) + zip(s1, payloads, s3) + zip(s1, s2, payloads) for item in a: x, y, z = item print ("http://www.waitalone.cn/index.php?id=%s&abc=%s&xxx=%s" %(x,y,z)) ``` 数量不多,随便了,多了可以loop |
15
hack2012 OP 谢谢楼上的兄弟!!
|
16
hack2012 OP 感谢楼上所有提供思路的兄弟们,目前已经得到了解决,最终代码如下!
def url_values_plus(url, vals): ret = [] u = urlparse.urlparse(url) qs = u.query pure_url = url.replace('?'+qs, '') qs_dict = dict(urlparse.parse_qsl(qs)) for val in vals: for k in qs_dict.keys(): tmp_dict = copy.deepcopy(qs_dict) tmp_dict[k] = val tmp_qs = urllib.unquote(urllib.urlencode(tmp_dict)) ret.append(pure_url + "?" + tmp_qs) return ret |
17
hack2012 OP |