
Python Selenium登录CSDN失败,哪位大神指导下
一、版本:
python 3.7
selenium 4.1.0
pycharm 社区版
二、代码
import os
import shutil
import time
from time import sleep
from docx import Document
from docx.opc.oxml import qn
from docx.shared import Inches, RGBColor
from framework.base.BaseFrame import BaseFrame
from sprider.business.DownLoad import DownLoad
from sprider.business.SeleniumTools import SeleniumTools
from sprider.business.SpriderTools import SpriderTools
from selenium import webdriver
from selenium.webdriver.common.by import By
from sprider.model.SpriderEntity import SpriderEntity
from sprider.access.SpriderAccess import SpriderAccess
uName = "276396929@qq.com"
pWord=""
class CSDNBusiness:
base_url = "https://passport.csdn.net/login" # https://passport.csdn.net/login?code=applets
def login(self,uName,pWord):
sprider_url = self.base_url
chrome_options = webdriver.ChromeOptions()
# 实例化chrome浏览器时,关联忽略证书错误
driver = webdriver.Chrome(options=chrome_options)
driver.set_window_size(1280, 800) # 分辨率 1280*800
driver.get(sprider_url)
#
# a_element_login= driver.find_element(By.CLASS_NAME, "toolbar-btn-loginfun")
#
# a_element_login.click()
# sleep(10)
div_element_login = driver.find_element(By.CLASS_NAME, "login-box-tabs-items")
#
span_list=div_element_login.find_elements(By.TAG_NAME,"span")
span_list[3].click()
sleep(1)
#
input_elements = driver.find_elements(By.CLASS_NAME, "base-input-text")
txtUname=input_elements[0]
txtPword=input_elements[1]
txtUname.clear()
txtPword.clear()
txtUname.send_keys(uName)
txtPword.send_keys(pWord)
sleep(1)
driver.find_element(By.CLASS_NAME, "base-button").click()
sleep(100)
if __name__ == "__main__":
CSDNBusiness().login(uName,pWord)
pass
失败的原因就要求拖动滑块,因为CSDN已经发现浏览器被控制了