python之playwright的基本使用及說(shuō)明
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
for browser_type in [p.chromium,p.firefox,p.webkit]:
browser = browser_type.launch(headless=False)
page = browser.new_page()
page.goto('https://www.baidu.com')
page.screenshot(path=f'screenshot-{browser_type.name}.png')
print(page.title())
browser.close()運(yùn)行結(jié)果如下:

關(guān)鍵知識(shí)點(diǎn)
這段代碼使用了 Playwright(一個(gè)用于自動(dòng)化瀏覽器操作的 Python 庫(kù))來(lái)依次啟動(dòng)三種主流瀏覽器(Chromium、Firefox、WebKit),訪問(wèn)百度首頁(yè),并對(duì)每個(gè)瀏覽器進(jìn)行截圖和打印網(wǎng)頁(yè)標(biāo)題。
下面是對(duì)每一行代碼的詳細(xì)解釋?zhuān)?/p>
導(dǎo)入模塊
from playwright.sync_api import sync_playwright
- 從
playwright.sync_api模塊中導(dǎo)入sync_playwright。 - Playwright 提供了同步(sync)和異步(async)兩種 API 風(fēng)格,這里使用的是同步風(fēng)格,適合腳本式、順序執(zhí)行的任務(wù)。
啟動(dòng)上下文管理器
with sync_playwright() as p:
- 使用
with語(yǔ)句創(chuàng)建一個(gè) Playwright 的同步運(yùn)行時(shí)上下文。 p是 Playwright 的主對(duì)象,通過(guò)它可以訪問(wèn)瀏覽器類(lèi)型(如chromium,firefox,webkit)。
好處:with 會(huì)自動(dòng)在結(jié)束時(shí)關(guān)閉所有資源(如瀏覽器進(jìn)程),防止內(nèi)存泄漏。
遍歷三種瀏覽器
for browser_type in [p.chromium, p.firefox, p.webkit]:
p.chromium:代表基于 Chromium 的瀏覽器(如 Chrome、Edge)。p.firefox:代表 Mozilla Firefox。p.webkit:代表 Apple WebKit(在 macOS 上模擬 Safari 行為)。- 這里將依次啟動(dòng)這三種瀏覽器。
注意:首次運(yùn)行時(shí),Playwright 會(huì)自動(dòng)下載這些瀏覽器的精簡(jiǎn)版(如果尚未安裝)。
啟動(dòng)瀏覽器并打開(kāi)新頁(yè)面
browser = browser_type.launch(headless=False) page = browser.new_page()
browser_type.launch(headless=False):
- 啟動(dòng)對(duì)應(yīng)類(lèi)型的瀏覽器。
headless=False表示以有頭模式(即可見(jiàn)窗口)運(yùn)行;若設(shè)為True則后臺(tái)無(wú)界面運(yùn)行(默認(rèn)值通常是True)。
browser.new_page():
- 打開(kāi)一個(gè)新的標(biāo)簽頁(yè)(Page 對(duì)象),用于后續(xù)操作。
訪問(wèn)百度首頁(yè)
page.goto('https://www.baidu.com')- 在當(dāng)前頁(yè)面中導(dǎo)航到
https://www.baidu.com。 - Playwright 會(huì)等待頁(yè)面加載完成(包括網(wǎng)絡(luò)空閑)后再繼續(xù)執(zhí)行。
截圖保存
page.screenshot(path=f'screenshot-{browser_type.name}.png')對(duì)當(dāng)前頁(yè)面進(jìn)行截圖,并保存為 PNG 文件。
文件名根據(jù)瀏覽器類(lèi)型動(dòng)態(tài)生成,例如:
screenshot-chromium.pngscreenshot-firefox.pngscreenshot-webkit.png
打印網(wǎng)頁(yè)標(biāo)題
print(page.title())
- 獲取當(dāng)前頁(yè)面的
<title>標(biāo)簽內(nèi)容(即網(wǎng)頁(yè)標(biāo)題)。 - 百度首頁(yè)的標(biāo)題通常是
"百度一下,你就知道"。 - 將其打印到控制臺(tái)。
關(guān)閉瀏覽器
browser.close()
- 關(guān)閉當(dāng)前瀏覽器實(shí)例及其所有頁(yè)面。
- 釋放系統(tǒng)資源。
雖然 with sync_playwright() 會(huì)在最后清理資源,但顯式調(diào)用 browser.close() 是良好實(shí)踐,尤其在循環(huán)中。
總結(jié):這段代碼的作用
使用 Playwright 自動(dòng)化測(cè)試框架,在 Chromium、Firefox 和 WebKit 三種瀏覽器中分別打開(kāi)百度首頁(yè),截圖保存,并打印頁(yè)面標(biāo)題。
補(bǔ)充說(shuō)明
依賴安裝:
pip install playwright playwright install # 安裝瀏覽器二進(jìn)制文件
常見(jiàn)用途:
- 跨瀏覽器兼容性測(cè)試
- 自動(dòng)化截圖對(duì)比
- 爬蟲(chóng)(繞過(guò)簡(jiǎn)單反爬)
- UI 自動(dòng)化測(cè)試
注意事項(xiàng):
- WebKit 在 Windows/Linux 上的行為可能與 macOS 不完全一致。
- 如果網(wǎng)絡(luò)受限,
goto()可能超時(shí),可加timeout=5000參數(shù)。 - 生產(chǎn)環(huán)境中建議使用
headless=True提高性能。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python?Playwright庫(kù)從入門(mén)到實(shí)戰(zhàn)教程
- Python使用Playwright實(shí)現(xiàn)更快更現(xiàn)代的瀏覽器自動(dòng)化實(shí)戰(zhàn)指南
- Python使用Playwright實(shí)現(xiàn)屏幕截圖的示例詳解
- python playwright實(shí)現(xiàn)獲取當(dāng)前頁(yè)面的截圖
- Python Playwright 語(yǔ)法知識(shí)詳解(推薦)
- Python使用Playwright實(shí)現(xiàn)完美抓取復(fù)雜動(dòng)態(tài)的網(wǎng)頁(yè)
- python playwright解決iframe上下文定位功能完整方案
- 基于Python Playwright進(jìn)行前端性能測(cè)試的腳本實(shí)現(xiàn)
相關(guān)文章
TensorFlow tf.nn.conv2d_transpose是怎樣實(shí)現(xiàn)反卷積的
這篇文章主要介紹了TensorFlow tf.nn.conv2d_transpose是怎樣實(shí)現(xiàn)反卷積的,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Python?DPED機(jī)器學(xué)習(xí)之實(shí)現(xiàn)照片美化
本篇文章主要介紹了利用Python中的DPED工具實(shí)現(xiàn)照片一鍵美化,可以實(shí)現(xiàn)照片亮度提高和色彩鮮明度提高,代碼簡(jiǎn)潔易懂,具有一定學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下2021-11-11
使用Python將PPT的幻燈片和形狀轉(zhuǎn)為多種圖片格式
這篇文章主要為大家詳細(xì)介紹了如何使用Python?將PPT幻燈片和形狀轉(zhuǎn)換為多種圖片格式,即JPG,?PNG,?BMP,?SVG,?TIFF,需要的可以參考下2025-02-02
使用Python對(duì)Excel表內(nèi)容進(jìn)行中文提取的示例代碼
本項(xiàng)目是基于Tkinter的圖形界面應(yīng)用程序,用于從Excel文件中提取符合特定正則表達(dá)式模式(默認(rèn)提取中文)的文本內(nèi)容,并將結(jié)果輸出到指定列或新文件中,感興趣的小伙伴跟著小編一起來(lái)看看吧2025-11-11
如何通過(guò)pycharm實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的查詢等操作(非多步操作)
這篇文章主要介紹了如何通過(guò)pycharm實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的查詢等操作(非多步操作),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
Numpy數(shù)組的組合與分割實(shí)現(xiàn)的方法
本文主要介紹了Numpy數(shù)組的組合與分割實(shí)現(xiàn)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
Python灰度變換中的分段線性函數(shù)專(zhuān)項(xiàng)分析實(shí)現(xiàn)
灰度變換是指根據(jù)某種目標(biāo)條件按一定變換關(guān)系逐點(diǎn)改變?cè)磮D像中每個(gè)像素灰度值的方法。目的是改善畫(huà)質(zhì),使圖像顯示效果更加清晰。圖像的灰度變換處理是圖像增強(qiáng)處理技術(shù)中的一種非?;A(chǔ)、直接的空間域圖像處理方法,也是圖像數(shù)字化軟件和圖像顯示軟件的一個(gè)重要組成部分2022-10-10
Python3 虛擬開(kāi)發(fā)環(huán)境搭建過(guò)程(圖文詳解)
這篇文章主要介紹了Python3 虛擬開(kāi)發(fā)環(huán)境搭建過(guò)程,本文通過(guò)圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-01-01

