Я пытаюсь создать бота для входа на сайт моей школы, но проблема в том, что он перегружен запросами на неделе, выбранной классом. Основная цель бота - пытаться снова и снова, пока он не попадет в систему.Когда система принимает N количество студентов, сервер скажет, что больше не будет принимать студентов, и перенаправит вас на страницу входа, а с меткой будет заполнено.
Мой код:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from datetime import datetime
import time
f = open('kullanici.txt', 'r')
veri = f.read().split(':')
print(veri)
usernameStr = veri[0]
passwordStr = veri[1]
url= 'http://ogr.kocaeli.edu.tr/KOUBS/ogrenci/index.cfm'
delay = int(veri[2])
browser = webdriver.Chrome()
browser.get((url))
# fill in username and hit the next button
print("Başlangıç saati " + str(datetime.now().hour) + ":" + str(datetime.now().minute)+ ":" + str(datetime.now().second))
tryAmount = 1
errorAmount = 1
old_page = browser.find_element_by_tag_name('html')
print(datetime.now().month==9 and datetime.now().year == 2018)
if(datetime.now().month==9 and datetime.now().year == 2018):
for i in range(1000):
try:
username = browser.find_element_by_id('OgrNo')
username.send_keys(usernameStr)
password = browser.find_element_by_id('Sifre')
password.send_keys(passwordStr)
signInButton = browser.find_element_by_id('Ara')
signInButton.click()
WebDriverWait(browser, delay).until(EC.staleness_of(old_page))
print(str(tryAmount) + " kere denendi. " + str(datetime.now().hour) + ":" + str(datetime.now().minute)+ ":" + str(datetime.now().second))
tryAmount += 1
except Exception as e:
if browser.current_url == url:
print(str(e))
print(str(errorAmount) + " kere hata alındı")
browser.refresh()
errorAmount += 1
else:
break
Основная проблема заключается в том, что сервер всегда изменяет длительность запроса в зависимости от перегрузки, и иногда он просто не дает ответа. Я пытаюсь увидеть конец моего запроса (он перенаправит меня назад и скажет, что он заполнен.) и нажмите снова, но он просто щелкает снова и снова бесконечно, не давая ему изменить логин.Как я могу решить это?
HTML, как это (последний пустой элемент p является тот):
<body>
<form name="CFForm_1" id="CFForm_1" method="POST" onsubmit="return _CF_checkCFForm_1(this)">
<input type="hidden" name="LoggingOn" value="1">
<div class="row">
<div class="col-lg-4 col-lg-offset-4" style="margin-top: 50px; border: solid 1px #CCC; border-radius: 5px;">
<div align="center" style="margin: 20px;"><img src="/KOUBS/CommonFiles/images/logokou.png" /></div>
<p align="center">
</p>