我正在尝试使用selenium python登录到我的帐户bet365.com。我知道网站检测硒,大多数人通常会遇到问题。但是我没有得到任何共同的问题。网站加载良好,但当我试图输入我正确的登录细节。提示登录信息未被识别
这是我的代码:
self.driver.get('https://www.bet365.com')
# Waits until page is fully loaded
WebDriverWait(self.driver, 20).until(lambda x: 'Log In' in self.driver.page_source)
login_frame = self.wait(By.CLASS_NAME, 'hm-MainHeaderRHSLoggedOutWide_Login ', time=70)
# Function that clicks the login button
self.doAction(login_frame)
# Function that waits until the login popup shows
username = self.wait(By.CLASS_NAME, 'lms-StandardLogin_Username ', time=5)
username.clear()
username.send_keys('username') # my username
password = self.driver.find_element_by_class_name('lms-StandardLogin_Password ')
password.clear()
password.send_keys('password') # my password
password.send_keys(Keys.RETURN)
是来自网站的问题,还是网站只是说,因为我使用硒。如果我正常登录,它工作得很好。请任何迅速的帮助将不胜感激
尝试使用回车键而不是通过从密码文本框返回。我也遇到过同样的事。也许可以
from selenium.webdriver.common.keys import Keys
self.driver.find_element_by_class_name("class_name").sendKeys(Keys.ENTER);
这几乎可以肯定是网站禁止你的代码。
的赌注。365是一个非常受欢迎的网站,它绝对结合了反网络抓取和机器人检测。
更不用说还违反了他们的服务条款:
https://help.bet365.com/en/terms-and-conditions如果你还在修改,你可以看看下面的线程:
网站可以检测到当你使用硒与铬驱动程序?
首先,使用以下链接更改您的chromedriver编译https://stackoverflow.com/a/52108199/5393597
之后,使用以下脚本:
driver.get(URL_BET_THREE_SIX_FIVE)
# Check loading page
Wait(driver, 60).until_not(EC.presence_of_element_located((By.CLASS_NAME, "bl-Preloader_SpinnerContainer ")))
# Close popup if exist
try:
popup = driver.find_element(By.CLASS_NAME, "iip-IntroductoryPopup_Cross")
popup.click()
except:
print("Not exist popup")
# Click in login button for open form login
loginButton = Wait(driver, 60).until(EC.presence_of_element_located((By.CLASS_NAME, "hm-MainHeaderRHSLoggedOutWide_LoginContainer ")))
loginButton.click()
Wait(driver, 60).until(EC.presence_of_element_located((By.CLASS_NAME, "lms-StandardLogin_Username ")))
print("tinput email")
user = driver.find_element(By.CLASS_NAME, 'lms-StandardLogin_Username ')
user.clear()
user.send_keys(USER)
time.sleep(random.randint(1, 3))
user.send_keys(Keys.TAB)
print("tinput pwd")
pw = driver.find_element(By.CLASS_NAME, 'lms-StandardLogin_Password ')
pw.send_keys(PASSWORD)
time.sleep(random.randint(1, 3))
pw.send_keys(Keys.ENTER)