欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python?selenium實(shí)現(xiàn)登錄豆瓣示例詳解

 更新時(shí)間:2022年01月25日 09:36:22   作者:侯小啾  
大家好,本篇文章主要講的是python?selenium登錄豆瓣示例詳解,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下

使用python爬蟲(chóng)selenium訪問(wèn)豆瓣https://www.douban.com/,實(shí)現(xiàn)模擬登錄過(guò)程。

網(wǎng)頁(yè)界面如圖所示

在這里插入圖片描述

首先導(dǎo)包后,定位圖中 密碼登錄 的element,并點(diǎn)擊。

經(jīng)分析,該標(biāo)簽的class_name為’account-tab-account’。

在這里插入圖片描述

from selenium import webdriver
import time

driver = webdriver.Chrome()
driver.get('https://www.douban.com/')
# 點(diǎn)擊 密碼登錄  按鈕 。但是找不到該element,不存在網(wǎng)頁(yè)中
driver.find_element_by_class_name('account-tab-account').click()

但是該段代碼結(jié)果出現(xiàn)了報(bào)錯(cuò),定位不到目標(biāo)元素。
經(jīng)核實(shí),發(fā)現(xiàn)該element并不存在與網(wǎng)頁(yè)源碼中。

經(jīng)分析,登錄界面存在于一個(gè)叫iframe的標(biāo)簽中。iframe這個(gè)標(biāo)簽是嵌套在這個(gè)網(wǎng)頁(yè)中的,單獨(dú)拿出來(lái)也能用。所以并不存在于網(wǎng)頁(yè)源碼中。

在這里插入圖片描述

訪問(wèn)該src鏈接可以看到如下界面:

在這里插入圖片描述

iframe中的元素不屬于原網(wǎng)頁(yè)的元素,但是iframe在網(wǎng)頁(yè)源碼中,要獲取其元素,先定位iframe:

在這里插入圖片描述

# 找到登陸的iframe
login_iframe = driver.find_element_by_xpath('//div[@class="login"]/iframe')
# 切換到iframe
driver.switch_to.frame(login_iframe)
# 點(diǎn)擊密碼登陸
driver.find_element_by_class_name('account-tab-account').click()

找到之后,還要切換進(jìn)去,使用 switch_to 方法。
經(jīng)測(cè)試,點(diǎn)擊成功。

在這里插入圖片描述

接下來(lái),就是輸入賬號(hào)和密碼過(guò)程了

# 填寫(xiě)賬號(hào)
driver.find_element_by_id('username').send_keys('123456789@163.com')
time.sleep(2)
# 填寫(xiě)密碼
driver.find_element_by_id('password').send_keys('xxxx')

登錄

# 點(diǎn)擊登陸按鈕
driver.find_element_by_xpath('/html/body/div[1]/div[2]/div[1]/div[5]/a').click()

也可以通過(guò)JS點(diǎn)擊

execute_script() 方法

login_button = driver.find_element_by_xpath('/html/body/div[1]/div[2]/div[1]/div[5]/a')
driver.execute_script("arguments[0].click()", login_button)

此外,在輸入賬號(hào)密碼前,有時(shí)也會(huì)遇到輸入框中有諸如“請(qǐng)輸入賬號(hào)”、“請(qǐng)輸入密碼”這樣的文字(默認(rèn)值),需要清除掉后才能輸入,否則輸入內(nèi)容會(huì)重疊。(此例中不會(huì),此例中輸入新內(nèi)容后自動(dòng)覆蓋原有的“手機(jī)號(hào)/郵箱”、“密碼”字樣)清楚輸入框中的文字,使用 clear 方法。

# 以清除用戶名一欄的內(nèi)容為例
driver.find_element_by_id('username').clear()

最后,模擬登陸的目的,一般是為了獲取cookie。使用到以下命令。

get_cookies()

print(driver.get_cookies())

在這里插入圖片描述

到此這篇關(guān)于python selenium登錄豆瓣示例詳解的文章就介紹到這了,更多相關(guān)python selenium登錄豆瓣內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論