Python 问题在这里...我有两个包含以下数据的文件:
hosts.txt
:
google.com
target.com
bing.com
strings1.txt
:
x
y
z
我正在尝试构建 URL 并向它们发出 GET 请求,方法是读取
hosts.txt
中的主机列表,同时传入 strings1.txt
中的字符串列表作为查询参数。但是,My Script 仅向 hosts.txt
的第 1 行以及 strings1.txt
中的所有字符串发出请求,但随后脚本终止(请参阅:Output)。如何将查询参数列表传递到第一个主机,然后使用相同的查询参数移动到 hosts.txt
文件第 2 行中的下一个主机,依此类推?我尝试使用 next()
方法,但遇到了麻烦。任何帮助是极大的赞赏。谢谢你。
我的脚本
with open('hosts.txt','r') as file:
with open('strings1.txt','r') as strings:
for line in file:
host = line.strip()
for string in strings:
url = f"https://{host}/?test={string}"
resp = requests.get((url)).status_code
print(f'Results for {url}\n{test}')
输出
Results for https://google.com/?test=x
302
Results for https://google.com/?test=y
302
Results for https://google.com/?test=z
302
[...SCRIPT TERMINATES...]
您正在耗尽
string
迭代器(它对 strings1.txt
中的行进行迭代,因此您只能看到主机上的一次迭代)。相反,将主机/字符串读取到列表中,然后发出请求:
with open("hosts.txt", "r") as f_hosts:
hosts = list(map(str.strip, f_hosts))
with open("strings.txt", "r") as f_strings:
strings = list(map(str.strip, f_strings))
for h in hosts:
for s in strings:
url = f"https://{h}/?test={s}"
print(url)
# requests.get(url)
# ...
打印:
https://google.com/?test=x
https://google.com/?test=y
https://google.com/?test=z
https://target.com/?test=x
https://target.com/?test=y
https://target.com/?test=z
https://bing.com/?test=x
https://bing.com/?test=y
https://bing.com/?test=z