python網(wǎng)絡(luò)爬蟲selenium打開多窗口與切換頁面的實(shí)現(xiàn)
關(guān)于python網(wǎng)絡(luò)爬蟲selenium打開多窗口與切換頁面的方法代碼測試與解析。
首先打開百度
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
以知乎為例,打開一個(gè)新的界面,使用 execute_script() 方法,執(zhí)行JavaScript代碼。
并調(diào)用driver的current_url屬性,然后查看當(dāng)前頁面的url:
driver.execute_script("window.open('https://www.zhihu.com')")
print(driver.current_url)

當(dāng)前頁面依然還是百度。要想把當(dāng)前頁面換成知乎,還需要繼續(xù)用代碼切換過來。
打印 句柄 ,即driver的 window_handles 屬性,輸出結(jié)果如下:
print(driver.window_handles)

是一個(gè)有兩個(gè)元素的列表,分別代表上邊打開的兩個(gè)網(wǎng)頁,百度和知乎。
分別將其傳入switch_to.window()方法中,再打印當(dāng)前頁面的url,輸出結(jié)果如下,可以看到,頁面成功被切換。
win1 = driver.window_handles[0] driver.switch_to.window(win1) print(driver.current_url) time.sleep(2) win2 = driver.window_handles[1] driver.switch_to.window(win2) print(driver.current_url)

關(guān)于句柄在列表中的順序,
建議一般最好只額外打開一個(gè)網(wǎng)頁,不建議打開更多的網(wǎng)頁進(jìn)行切換。當(dāng)打開的網(wǎng)頁數(shù)量超過兩個(gè)時(shí),句柄列表中的元素分別代表哪個(gè)網(wǎng)頁,其順序是不太好確定的。以下面代碼為例,其順序如下。
from selenium import webdriver
import time
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
# 打開一個(gè)新的頁面
driver.execute_script("window.open('https://www.zhihu.com')")
driver.execute_script("window.open('https://www.lagou.com/')")
driver.execute_script("window.open('https://www.jianshu.com/')")
win1 = driver.window_handles[0]
driver.switch_to.window(win1)
print(driver.current_url)
time.sleep(2)
win2 = driver.window_handles[1]
driver.switch_to.window(win2)
print(driver.current_url)
time.sleep(2)
win3 = driver.window_handles[2]
driver.switch_to.window(win3)
print(driver.current_url)
time.sleep(2)
win4 = driver.window_handles[3]
driver.switch_to.window(win4)
print(driver.current_url)
輸出結(jié)果如圖,句柄的第一個(gè)元素表示我們第一次打開的主網(wǎng)頁界面,
然后我們依次打開了知乎、拉鉤、簡書,但是句柄列表第二三四個(gè)元素依次表示的是簡書、拉鉤、知乎。
可以認(rèn)為其從第二個(gè)元素往后是與我們代碼寫入的順序是相反的。

到此這篇關(guān)于python網(wǎng)絡(luò)爬蟲selenium打開多窗口與切換頁面的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python selenium多窗口與切換頁面內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python實(shí)現(xiàn)selenium網(wǎng)絡(luò)爬蟲的方法小結(jié)
- python網(wǎng)絡(luò)爬蟲 Scrapy中selenium用法詳解
- Python+selenium實(shí)現(xiàn)趣頭條的視頻自動(dòng)上傳與發(fā)布
- Python + selenium 自動(dòng)化測試框架詳解
- python自動(dòng)化測試selenium屏幕截圖示例
- Python編程使用Selenium模擬淘寶登錄實(shí)現(xiàn)過程
- Python+selenium 自動(dòng)化快手短視頻發(fā)布的實(shí)現(xiàn)過程
- Python結(jié)合Selenium簡單實(shí)現(xiàn)Web自動(dòng)化測試
- 利用Python+Selenium破解春秋航空網(wǎng)滑塊驗(yàn)證碼的實(shí)戰(zhàn)過程
- python網(wǎng)絡(luò)爬蟲基于selenium爬取斗魚直播信息
相關(guān)文章
Python內(nèi)置函數(shù)int()用法簡單介紹
這篇文章主要給大家介紹了關(guān)于Python內(nèi)置函數(shù)int()用法的相關(guān)資料,int()函數(shù)常用來把其他類型轉(zhuǎn)換為整數(shù),文中通過代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用python具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2024-05-05
python tkinter庫實(shí)現(xiàn)氣泡屏保和鎖屏
這篇文章主要為大家詳細(xì)介紹了python tkinter庫實(shí)現(xiàn)氣泡屏保和鎖屏,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
pytorch通過訓(xùn)練結(jié)果的復(fù)現(xiàn)設(shè)置隨機(jī)種子
這篇文章主要介紹了pytorch通過訓(xùn)練結(jié)果的復(fù)現(xiàn)設(shè)置隨機(jī)種子的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
Python通過跳板機(jī)訪問數(shù)據(jù)庫的方法
跳板機(jī)是一類可作為跳板批量操作的遠(yuǎn)程設(shè)備的網(wǎng)絡(luò)設(shè)備,是系統(tǒng)管理員和運(yùn)維人員常用的操作平臺之一。本文給大家介紹Python通過跳板機(jī)訪問數(shù)據(jù)庫的方法,感興趣的朋友跟隨小編一起看看吧2021-10-10
Python中的并發(fā)處理之a(chǎn)syncio包使用的詳解
本篇文章主要介紹了Python中的并發(fā)處理之a(chǎn)syncio包使用的詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04

