要使用selenuim模拟动态动态登录百度,我们的电脑要下载webdriver自动Microsoft Edge,大家可以下载Chromedriver或是Edgdriver。我这里使用的是Edg。
1.首先就是要找到网页,并获取到
driver = webdriver.Edge()
driver.get("https://www.baidu.com/?tn=44004473_21_oem_dg")2.利用find_element的各种方法可以找到登录按钮的位置,我这里使用的find_element_by_xpath()的方法,当然也可以用其他的方法获取
#找到百度页面的登录并点击
login = driver.find_element_by_xpath('//a[@id="s-top-loginbtn"]').click()
time.sleep(5) #等待时间,让页面加载出来3.进入到登录页面了之后一样通过xpath方法找到用户名框和密码框,并使用send_keys()方法输入自己的账号和密码,点击登录按钮
#找到用户名,密码输入框
username = driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_11__userName"]')
password = driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_11__password"]')
#输入密码和账号
username.send_keys('你的账号')
password.send_keys('你的登录密码')
time.sleep(2)
#找到登录按钮
submit = driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_11__submit"]')#点击登录
submit.click()
time.sleep(2)4.百度登录的时候会检测自动化工具登录,出现一个图形验证,我这里用的就是最简便的方法,先把图形验证框给叉掉,再点击一次登录按钮,这样就可以跳过验证了
#跳过图形验证
try:
test = driver.find_element_by_xpath('//*[@class="vcode-close"]').click()#跳过图形验证
time.sleep(2)
submit.click()
time.sleep(2)
except :
print('目标不存在')5.在最后我们要记得关闭浏览器和driver,不然会很占内存
#关闭浏览器和程序
driver.quit()
driver.close()下面就是完整的代码:
from selenium import webdriver
import time
driver = webdriver.Edge()
driver.get("https://www.baidu.com/?tn=44004473_21_oem_dg")
#找到百度页面的登录并点击
login = driver.find_element_by_xpath('//a[@id="s-top-loginbtn"]').click()
time.sleep(5) #等待时间,让页面加载出来
#找到用户名,密码输入框
username = driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_11__userName"]')
password = driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_11__password"]')
#输入密码和账号
username.send_keys('你的账号')
password.send_keys('你的登录密码')
time.sleep(2)
#找到登录按钮
submit = driver.find_element_by_xpath('//*[@id="TANGRAM__PSP_11__submit"]')#点击登录
submit.click()
time.sleep(2)
#跳过图形验证
try:
test = driver.find_element_by_xpath('//*[@class="vcode-close"]').click()#跳过图形验证
time.sleep(2)
submit.click()
time.sleep(2)
except :
print('目标不存在')
#关闭浏览器和程序
driver.quit()
driver.close()上面就是使用selenium模拟动态登录百度的全部过程。
版权声明:本文为user__s原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。