tuychiev1988
@tuychiev1988
Начинающий IT разработчик

Как ускорить данную часть кода?

Всем привет! Друг пишет сайт, на сайте есть раздел фото, он находится под паролем в котором только цифры. Я сказал другу что подобрать пароль будет не так сложно, он сказал попробуй и я написал скрипт на python c использованием selenium. Скрипт находит окно ввода пароля и дальше подбором от 0 до того момента пока фотографии не откроются подбирает пароль! Но получается очень долго, как-то можно ускорить данный код?
i = 1
while True:
browser.find_element_by_xpath("//html/body/table/tbody/tr[2]/td[2]/div/table/tbody/tr/td/div/div/div[1]/div/div/form/input").send_keys(i)

browser.find_element_by_xpath("//form/button").click()
browser.find_element_by_xpath("//html/body/table/tbody/tr[2]/td[2]/div/table/tbody/tr/td/div/div/div[1]/div/div/form/input").clear()
i += 1
  • Вопрос задан
  • 127 просмотров
Решения вопроса 1
@twolegs
Как минимум - не искать элементы каждую итерацию цикла, а сохранить найденные элементы в переменные. Насколько я понимаю, перезагрузки страницы не происходит.
Второе - если есть возможность, работать без селениума, отправляя запросы напрямую к апи. Запросы, судя по всему, можно будет отправлять в несколько потоков, раз на бэкенде нет никаких ограничений на количество запросов и нет никакой защиты от подобных атак.
Третье - изменить стратегию подбора чисел. Не думаю, что в качестве пароля используется малое количество символов, поэтому я бы начал подбор с большего количества цифр.
Ну а другу лучше бы добавить какую-то защиту от подобных атак.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@bacon
1. перебирать без selenium, обычными запросами через requests
2. если нельзя, запустить перебор параллельно в нескольких процессах, насколько позволяет процессор
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы