logo
Loading...

Playwright 介紹 智能爬文的第一步 - AI Agent 開發特訓營:短期實現智能自動化 - Cupoy

使用 Playwright 進行網頁自動化:從基礎到實戰 1. Playwright 簡介 Playwright 是由 Microsoft 開發的強大瀏覽器自動化工具,支持 Chromium、Fire...

使用 Playwright 進行網頁自動化:從基礎到實戰 1. Playwright 簡介 Playwright 是由 Microsoft 開發的強大瀏覽器自動化工具,支持 Chromium、Firefox 和 WebKit。相較於 Selenium,它擁有更高效的 API,適用於網頁測試、自動化數據抓取、機器人流程自動化(RPA)等場景。 2. 安裝 Playwright 在使用 Playwright 之前,需要先安裝相關的 Python 套件。 pip install playwright termcolor 接著,安裝 Playwright 的瀏覽器環境: playwright install 3. 簡單的網頁自動化案例 我們將使用 Playwright 瀏覽 https://jina.ai,並抓取頁面標題與特定標籤的內容。 3.1 Python 代碼示例 from playwright.sync_api import sync_playwright from termcolor import colored def run(playwright): # 啟動 Chromium 瀏覽器,非無頭模式(可以看到瀏覽器執行過程) browser = playwright.chromium.launch(headless=False) page = browser.new_page() page.goto("https://jina.ai") # 取得頁面標題 print(f"Page Title is: {colored(page.title(), 'cyan')}" ) # 抓取特定標籤的內容 ud_header = page.locator('.ud-heading-serif-xxl').all_text_contents() for subheader in ud_header: print(f"Jina Subheader: {colored(subheader, 'cyan')}") # 關閉瀏覽器 browser.close() # 使用 Playwright 執行網頁自動化 with sync_playwright() as playwright: run(playwright) 3.2 代碼解析 啟動 Playwright: sync_playwright():同步執行 Playwright。 playwright.chromium.launch(headless=False):啟動 Chromium 瀏覽器,headless=False 表示顯示瀏覽器介面。 打開新分頁並瀏覽網址: page = browser.new_page() 創建新分頁。 page.goto("https://jina.ai") 訪問目標網站。 抓取頁面資訊: page.title() 取得頁面標題。 page.locator('.ud-heading-serif-xxl').all_text_contents() 抓取 .ud-heading-serif-xxl 選擇器對應的所有文字內容。 輸出結果: termcolor.colored(text, 'cyan') 讓輸出更具可讀性。 關閉瀏覽器: browser.close() 釋放資源,確保瀏覽器正確關閉。 4. 可能遇到的錯誤與解決方案 4.1 無法找到特定選擇器 如果 page.locator('.ud-heading-serif-xxl') 找不到對應內容,可能是: 選擇器名稱已更改,需使用開發者工具(F12)檢查 HTML 結構。 目標元素是動態載入的,需使用 page.wait_for_selector(selector) 等待元素加載。 4.2 瀏覽器未安裝 如果執行時遇到類似 Error: browser not installed,請執行: playwright install 來安裝對應瀏覽器。 5. 進一步學習與優化 5.1 反思與優化方向 異步執行:可使用 async 提高效率。 數據存儲:將抓取內容存入 CSV、JSON 或資料庫。 自動化測試:結合 pytest-playwright 進行測試。 動態交互:如自動填寫表單、點擊按鈕等。 5.2 可選挑戰 爬取其他網站:嘗試修改 URL,抓取不同網站的數據。 處理 JavaScript 渲染的頁面:使用 page.wait_for_load_state("domcontentloaded") 確保 DOM 加載完成。 自動登入功能:嘗試登錄帳號,並抓取登入後的內容。 6. 結論 本文介紹了 Playwright 的基礎使用方式,並提供了一個抓取網頁標題與內容的示例。透過這些知識,你可以開始使用 Playwright 進行自動化測試、數據抓取,甚至機器人流程自動化。