如何在python中更改url查询的值? [英] How to change values of url query in python?
问题描述
url = "http://www.example.com?type=a&type1=b&type2=c"
urllist = get_urllist(url)
trigger = ["'or '1'='1'"," 'OR '1'='2'","'OR a=a"]
def get_urllist(url):
url_parsed = urlparse.urlparse(url)
#extract the query parameters of the URL
query = urlparse.parse_qs(url_parsed.query)
#get the list of query
query_list = query_list(query)
#Get Base url
url = urlparse._replace(query=None).geturl()
#modify url to get url_list
for query in query_list :
# change the original query to get the expected result
return url_list
def query_list(query):
for t in trigger:
for key, value in query.items():
query[key] += t
query_list.append(query)
return query_list
如何通过更改查询参数值来返回URL列表?
How to return a list of URLs by changing the query parameter values?
原始网址=" http://www.example.com? type = a& type1 = b& type2 = c "
预期结果:
Url_list = [" http://www.example.com?type=a ' OR'1'='1'& type1 = b'OR'1'='1'& type2 = c'OR'1'='1'"," http://www.example.com?type=a 'OR a = a& type1 = b'OR a = a& type2 = c''OR a = a]
Url_list= ["http://www.example.com?type=a'OR '1'='1'&type1=b'OR '1'='1'&type2=c'OR '1'='1'","http://www.example.com?type=a'OR '1'='2'&type1=b'OR '1'='2'&type2=c'OR '1'='2'","http://www.example.com?type=a'OR a=a&type1=b'OR a=a&type2=c''OR a=a" ]
推荐答案
在Python2.x
您可以使用 urlparse.urlparse
函数和ParseResult._replace
方法:
import urlparse
url = "http://www.example.com?type=a&type1=b&type2=c"
trigger = ["'or '1'='1'"," 'OR '1'='2'","'OR a=a"]
parsed = urlparse.urlparse(url)
querys = parsed.query.split("&")
result = []
for pairs in trigger:
new_query = "&".join([ "{}{}".format(query, pairs) for query in querys])
parsed = parsed._replace(query=new_query)
result.append(urlparse.urlunparse(parsed))
注意
urlparse
模块重命名为< Python 3
中的c3>. 2to3
工具在将源转换为Python 3.
The urlparse
module is renamed to urllib.parse
in Python 3
. The 2to3
tool will automatically adapt imports when converting your sources to Python 3.
在Python3.x中
您可以使用 urlparse.urlparse
函数也是
You can use urlparse.urlparse
function as well.
import urllib.parse as urlparse
url = "http://www.example.com?type=a&type1=b&type2=c"
trigger = ["'or '1'='1'"," 'OR '1'='2'","'OR a=a"]
parsed = urlparse.urlparse(url)
querys = parsed.query.split("&")
result = []
for pairs in trigger:
new_query = "&".join([ "{}{}".format(query, pairs) for query in querys])
parsed = parsed._replace(query=new_query)
result.append(urlparse.urlunparse(parsed))
演示输出:
["http://www.example.com?type=a'or '1'='1'&type1=b'or '1'='1'&type2=c'or '1'='1'", "http://www.example.com?type=a 'OR '1'='2'&type1=b 'OR '1'='2'&type2=c 'OR '1'='2'", "http://www.example.com?type=a'OR a=a&type1=b'OR a=a&type2=c'OR a=a"]
这篇关于如何在python中更改url查询的值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!