用selenium登录百度贴吧之所以会进行图片验证,是因为百度判断到你这个操作是非人工操作,用自动化进行验证操作很复杂,但是想跳过的话很简单,有两种方式:
第一种:在你的代码中加入一些隐式等待和强制等待,以及最关键的,在输入账号密码时进行遍历操作,并设置几百毫秒的缓冲时间,这样百度就会以为你是人工操作从而不会进行图片验证
第二种:用cookie跳过百度验证,先人工登录,记录下BDUSS,然后添加cookie,用driver.add_cookie(data)
下面分别是两种方式的代码
第一种:
from time import sleep
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
driver = webdriver.Chrome()
sleep(1)
phone = '你自己的账号'
password = "你自己的密码"
driver.get("https://tieba.baidu.com/index.html")
driver.maximize_window()
sleep(2)
driver.set_window_size(1200,800)
sleep(1)
driver.set_window_size(1000,800)
sleep(2)
driver.implicitly_wait(15)
driver.find_element(By.LINK_TEXT,"登录").click()
sleep(2)
handles = driver.window_handles
driver.find_element(By.CLASS_NAME,"tang-pass-footerBarULogin").click()
sleep(2)
getUserName = driver.find_element(By.CSS_SELECtOR,"#TANGRAM__PSP_4__userName")
sleep(2)
for i in phone:
getUserName.send_keys(i)
time.sleep(.4)
getUserPassDom = driver.find_element(By.CSS_SELECTOR,"#TANGRAM__PSP_4__password")
sleep(2)
for j in password:
getUserPassDom.send_keys(j)
time.sleep(.4)
driver.find_element(By.CSS_SELECTOR,"[value='登录']").click()
sleep(10)
driver.find_element(By.CSS_SELECTOR,"#TANGRAM__21__button_send_mobile").click()
sleep(20)
driver.find_element(By.CSS_SELECTOR,"#TANGRAM__21__button_submit").click()
sleep(30)
sleep(3)
driver.quit()
第二种:
先自己人工登录,然后记录cookie
BDUSS都会看吧,打开F12,在Network中查看
from time import sleep
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.maximize_window()
# 添加cookie
Data = {"name":"BDUSS","value":"填写你自己的BDUSS的值"}
driver.add_cookie(Data)
sleep(3)
# 刷新
driver.refresh()
sleep(10)
driver.quit()



