python網(wǎng)絡(luò)爬蟲selenium打開多窗口與切換頁面的實現(xiàn)
關(guān)于python網(wǎng)絡(luò)爬蟲selenium打開多窗口與切換頁面的方法代碼測試與解析。
首先打開百度
from selenium import webdriver import time driver = webdriver.Chrome() driver.get('https://www.baidu.com/')
以知乎為例,打開一個新的界面,使用 execute_script() 方法,執(zhí)行JavaScript代碼。
并調(diào)用driver的current_url屬性,然后查看當前頁面的url:
driver.execute_script("window.open('https://www.zhihu.com')") print(driver.current_url)
當前頁面依然還是百度。要想把當前頁面換成知乎,還需要繼續(xù)用代碼切換過來。
打印 句柄 ,即driver的 window_handles 屬性,輸出結(jié)果如下:
print(driver.window_handles)
是一個有兩個元素的列表,分別代表上邊打開的兩個網(wǎng)頁,百度和知乎。
分別將其傳入switch_to.window()方法中,再打印當前頁面的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)于句柄在列表中的順序,
建議一般最好只額外打開一個網(wǎng)頁,不建議打開更多的網(wǎng)頁進行切換。當打開的網(wǎng)頁數(shù)量超過兩個時,句柄列表中的元素分別代表哪個網(wǎng)頁,其順序是不太好確定的。以下面代碼為例,其順序如下。
from selenium import webdriver import time driver = webdriver.Chrome() driver.get('https://www.baidu.com/') # 打開一個新的頁面 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é)果如圖,句柄的第一個元素表示我們第一次打開的主網(wǎng)頁界面,
然后我們依次打開了知乎、拉鉤、簡書,但是句柄列表第二三四個元素依次表示的是簡書、拉鉤、知乎。
可以認為其從第二個元素往后是與我們代碼寫入的順序是相反的。
到此這篇關(guān)于python網(wǎng)絡(luò)爬蟲selenium打開多窗口與切換頁面的實現(xiàn)的文章就介紹到這了,更多相關(guān)python selenium多窗口與切換頁面內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python實現(xiàn)selenium網(wǎng)絡(luò)爬蟲的方法小結(jié)
- python網(wǎng)絡(luò)爬蟲 Scrapy中selenium用法詳解
- Python+selenium實現(xiàn)趣頭條的視頻自動上傳與發(fā)布
- Python + selenium 自動化測試框架詳解
- python自動化測試selenium屏幕截圖示例
- Python編程使用Selenium模擬淘寶登錄實現(xiàn)過程
- Python+selenium 自動化快手短視頻發(fā)布的實現(xiàn)過程
- Python結(jié)合Selenium簡單實現(xiàn)Web自動化測試
- 利用Python+Selenium破解春秋航空網(wǎng)滑塊驗證碼的實戰(zhàn)過程
- python網(wǎng)絡(luò)爬蟲基于selenium爬取斗魚直播信息
相關(guān)文章
利用Python封裝MySQLHelper類實現(xiàn)數(shù)據(jù)庫的增刪改查功能
Python 連接 MySQL 的方法有很多,常用的有 pymysql 和 mysql-connector-python 兩種庫,本文主要介紹了如何封裝一個MySQLHelper類,實現(xiàn)對數(shù)據(jù)庫的增刪改查功能,感興趣的可以了解一下2023-06-06django框架中ajax的使用及避開CSRF 驗證的方式詳解
這篇文章主要介紹了django框架中ajax的使用及避開CSRF 驗證的方式,結(jié)合實例形式分析了Django框架ajax后臺交互與排除驗證csrf相關(guān)操作技巧,需要的朋友可以參考下2019-12-12python Tkinter實時顯示數(shù)據(jù)功能實現(xiàn)
這篇文章主要介紹了python Tkinter實時顯示數(shù)據(jù)功能實現(xiàn),本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07Python數(shù)據(jù)結(jié)構(gòu)與算法之算法分析詳解
算法分析的主要目標是從運行時間和內(nèi)存空間消耗等方面比較算法。本文將為大家詳細介紹Python數(shù)據(jù)結(jié)構(gòu)與算法中的算法分析,需要的可以參考一下2021-12-12深度理解Python中Class類、Object類、Type元類
本文主要介紹了深度理解Python中Class類、Object類、Type元類,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-06-06