關註上方 浩道Linux ,回復 資料 ,即可獲取海量 L inux 、 Python 、 網路通訊、網路安全 等學習資料!
前言
大家好,這裏是 浩道Linux ,主要給大家分享 L inux 、 P ython 、 網路通訊、網路安全等 相關的IT知識平台。
相信熟悉python的對於selenium庫都不會陌生,畢竟它在自動化測試領域套用還是十分廣泛的。今天介紹的這個python庫,據說比selenium庫還要牛逼,一起看看,或許你會發現它強大的地方!
DrissionPage 是一個基於 python 的網頁自動化工具。它既能控制瀏覽器,也能收發 封包,還能把兩者合而為一。 可兼顧瀏覽器自動化的便利性和 requests 的高效率。 它功能強大,內建無數人性化設計和便捷功能。 它的語法簡潔而優雅,程式碼量少,對新手友好。
背景
用 requests 做數據采集面對要登入的網站時,要分析封包、JS 源碼,構造復雜的請求,往往還要應付驗證碼、JS 混淆、簽名參數等反爬手段,門檻較高,開發效率不高。使用瀏覽器,可以很大程度上繞過這些坑,但瀏覽器執行效率不高。
因此,這個庫設計初衷,是將它們合而為一,同時實作「寫得快」和「跑得快」。能夠在不同需要時切換相應模式,並提供一種人性化的使用方法,提高開發和執行效率。除了合並兩者,本庫還以網頁為單位封裝了常用功能,提供非常簡便的操作和語句,使使用者可減少考慮細節,專註功能實作。以簡單的方式實作強大的功能,使程式碼更優雅。
以前的版本是對 selenium 進行重新封裝實作的。從 3.0 開始,作者另起爐竈,對底層進行了重新開發,擺脫對 selenium 的依賴,增強了功能,提升了執行效率。
核心能力
本庫采用全自研的內核,內建了 N 多實用功能,對常用功能作了整合和最佳化,對比 selenium,有以下優點:
無 webdriver 特征
無需為不同版本的瀏覽器下載不同的驅動
執行速度更快
可以跨 iframe 尋找元素,無需切入切出
把 iframe 看作普通元素,獲取後可直接在其中尋找元素,邏輯更清晰
可以同時操作瀏覽器中的多個分頁,即使分頁為非啟用狀態,無需切換
可以直接讀取瀏覽器緩存來保存圖片,無需用 GUI 點選另存
可以對整個網頁截圖,包括視口外的部份(90以上版本瀏覽器支持)
可處理非open狀態的 shadow-root
入門演示
SessionPage物件和WebPage物件的 s 模式,可用收發封包的形式存取網頁。
顧名思義,SessionPage是一個使用使用Session(requests 庫)物件的頁面,它使用 POM 模式封裝了網路連線和 html 解析功能,使收發封包也可以像操作頁面一樣便利。
並且,由於加入了本庫獨創的尋找元素方法,使數據的采集便利性遠超 requests + beautifulsoup 等組合。
SessionPage是本庫幾種頁面物件中最簡單的,我們先從它開始入手。
我們看個簡單的例子,來了解SessionPage的工作方式。
# 匯入
from DrissionPage import SessionPage
# 建立頁面物件
page = SessionPage()
# 存取網頁
page.get('https://gitee.com/explore/all')
# 在頁面中尋找元素
items = page.eles('t:h3')
# 遍歷元素
for item in items[:-1]:
# 獲取當前<h3>元素下的<a>元素
lnk = item('tag:a')
# 打印<a>元素文本和href內容
print(lnk.text, lnk.link)
輸入效果:
對比被存取頁面 官網。
簡直好
簡單啊!
更多詳情可存取作者主頁:
https://g1879.gitee.io/drissionpagedocs/
更多精彩
關註公眾號 「 浩道Linux 」
浩道Linux ,專註於 Linux系統 的相關知識、 網路通訊 、 網路安全 、 Python相關 知識以及涵蓋IT行業相關技能的學習, 理論與實戰結合,真正讓你在學習工作中真正去用到所學。同時也會分享一些面試經驗,助你找到高薪offer,讓我們一起去學習,一起去進步,一起去漲薪!期待您的加入~~~ 關註回復「資料」可 免費獲取學習資料 (含有電子書籍、視訊等)。
喜歡的話,記得 點「贊」 和 「在看」 哦