[英]How to change the value of the parameter in python?
NOTE: There is no fix url for it. 注意:没有修复URL。 Means it is not possible to see this url always.
意味着不可能总是看到该URL。 I want code which works for all the urls.
我想要适用于所有网址的代码。
For ex, http://januapp.com/demo/search.php?search=aaa 例如, http://januapp.com/demo/search.php?search = aaa
http://januapp.com/demo/search.php?other=aaa http://januapp.com/demo/search.php?other=aaa
Now I want to change it to 现在我想将其更改为
http://januapp.com/demo/search.php?search=bbb http://januapp.com/demo/search.php?other=bbb http://januapp.com/demo/search.php?search=bbb http://januapp.com/demo/search.php?other=bbb
I don't know how can I do it? 我不知道该怎么办?
I tried this 我试过了
import optparse
import requests
import urlparse
parser = optparse.OptionParser()
parser.add_option("-t","--Host", dest="Target", help="Please provide the target", default="true")
options, args = parser.parse_args()
url = options.Target
xss = []
xss.append("bbb")
try:
url2 =urlparse.urlparse(url)
print url2
url3 = urlparse.parse_qs(url2.query)
parametervalue = [key for key, key in url3.iteritems()] #[['aaa']]
parsed = parametervalue.append(xss[0])
print parsed
finalurl = urljoin(url, parsed)
print finalurl
except Exception as e:
print e
So when I pass this 所以当我通过这个
xss3.py -t http://januapp.com/demo/search.php?search=aaa
The Error occurs below on to the cmd 错误发生在cmd的下面
ParseResult(scheme='http', netloc='januapp.com', path='/demo/search.php', params='', query='search=aaa', fragment='')
None
name 'urljoin' is not defined
See the None
见
None
Now that's the problem, 现在就是问题了
I am using Python2.7. 我正在使用Python2.7。
Thank you very much. 非常感谢你。 Hope you get the problem.
希望你能解决这个问题。
How about: 怎么样:
ext = "bbb"
a = "http://januapp.com/demo/search.php?search="
print a+ext
Where ext
is what you want to search for, a
is the link and just add them together. ext
是您要搜索的内容, a
是链接,然后将它们添加在一起。
Or you could replace values like this: 或者,您可以像这样替换值:
ext = "bbb"
a = "http://januapp.com/demo/search.php?search=aaa"
print a.replace('aaa', ext)
Using regex: 使用正则表达式:
import re
ext = "bbb"
a = "http://januapp.com/demo/search.php?search=aaa"
b=re.compile(r".+search=")
print re.search(b,a).group()+ext
You can try something with this kind of approach. 您可以尝试使用这种方法。
url = 'http://januapp.com/demo/search.php?search=aaa'
# First get all your query params
arr = url.split('?')
base_url = arr[0] # This is your base url i.e. 'http://januapp.com/demo/search.php'
params = arr[1] # here are your query params ['search=aaa']
# Now seprate out all the query parameters and their values
arr2 = params.split("=") # This will give you somrthing like this : ['search', 'aaa'], the the value will be next to the key
# This is a dictonary to hold the key value pairs
param_value_dict = {} # {'search': 'aaa'}
for i, str in enumerate(arr2):
if i % 2 == 0:
param_value_dict[str] = arr2[i + 1]
# now if you want to chnage the value of search from 'aaa' to 'bbb', then just change it in the dictonary
param_value_dict['search'] = 'bbb'
# now form the new url from the dictonary
new_url = base_url + '?'
for param_name, param_value in param_value_dict.items():
new_url = new_url + param_name + "=" + param_value + "&"
# remove the extra '&'
new_url = new_url[:len(new_url) - 1]
print(new_url)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.