最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python playwright實(shí)現(xiàn)獲取當(dāng)前頁(yè)面的截圖

 更新時(shí)間:2025年12月01日 09:41:26   作者:weixin_46244623  
這篇文章主要為大家詳細(xì)介紹了python playwright實(shí)現(xiàn)獲取當(dāng)前頁(yè)面的截圖的相關(guān)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下

你可以使用 Playwright 來(lái)獲取當(dāng)前頁(yè)面的截圖。以下是一個(gè)示例代碼:

import os
import sys
from playwright.sync_api import sync_playwright


def find_chrome_executable():
    """
    自動(dòng)檢測(cè) Chrome / Chromium 在 Windows / macOS / Linux 平臺(tái)的常見(jiàn)安裝位置。
    找不到返回 None。
    """

    if sys.platform.startswith("win"):
        paths = [
            os.path.expandvars(r"%ProgramFiles(x86)%\Google\Chrome\Application\chrome.exe"),
            os.path.expandvars(r"%ProgramFiles%\Google\Chrome\Application\chrome.exe"),
            os.path.expandvars(r"%LocalAppData%\Google\Chrome\Application\chrome.exe"),
        ]

    elif sys.platform.startswith("darwin"):  # macOS
        paths = [
            "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome",
            "/Applications/Chromium.app/Contents/MacOS/Chromium",
        ]

    elif sys.platform.startswith("linux"):
        paths = [
            "/usr/bin/google-chrome",
            "/usr/bin/google-chrome-stable",
            "/usr/bin/chromium",
            "/usr/bin/chromium-browser",
            "/snap/bin/chromium",
        ]

    else:
        return None

    for path in paths:
        if os.path.exists(path):
            return path

    return None


def click_first_link_in_hotsearch_and_get_url():
    chrome_path = find_chrome_executable()

    if not chrome_path:
        print("? 未找到本地 Chrome,程序退出。")
        return

    print(f"? 使用本地 Chrome:{chrome_path}")

    with sync_playwright() as p:
        # 不允許 fallback 用內(nèi)置 Chromium
        browser = p.chromium.launch(executable_path=chrome_path, headless=True)

        page = browser.new_page()
        page.goto('https://www.baidu.com')
        page.wait_for_load_state('load')

        hotsearch_selector = '#s-hotsearch-wrapper'
        page.wait_for_selector(hotsearch_selector)

        hotsearch_element = page.query_selector(hotsearch_selector)

        if hotsearch_element:
            first_link = hotsearch_element.query_selector("a")

            if first_link:
                url = first_link.get_attribute('href')
                print(f"第一個(gè)鏈接URL:{url}")

                page.goto(url)
                page.wait_for_load_state('load')

                screenshot_path = 'screenshot_after_click.png'
                page.screenshot(path=screenshot_path)

                print(f"截圖已保存到 {screenshot_path}")
            else:
                print("熱搜區(qū)未找到鏈接")
        else:
            print("頁(yè)面上未找到熱搜元素")

        browser.close()


if __name__ == '__main__':
    click_first_link_in_hotsearch_and_get_url()


在這個(gè)示例中,page.screenshot() 方法用于獲取當(dāng)前頁(yè)面的截圖,并將其保存到指定的文件路徑(screenshot.png)。確保替換 ‘https://www.baidu.com’ 為你想要截圖的實(shí)際網(wǎng)址。如果你希望在截圖后不關(guān)閉瀏覽器,記得注釋掉 browser.close() 部分。

注意:截圖之前最好等待頁(yè)面加載完成,以確保獲取到完整的頁(yè)面截圖。在這個(gè)示例中,使用了 page.wait_for_load_state(‘load’) 來(lái)等待頁(yè)面加載完成,但你可能需要根據(jù)實(shí)際情況調(diào)整等待的條件。

知識(shí)擴(kuò)展

下面我們來(lái)看看如何利用Playwright庫(kù)在Python中進(jìn)行屏幕截圖、截取全頁(yè)面長(zhǎng)圖以及特定元素的截圖。

捕獲屏幕截圖保存

page.screenshot(path="screenshot.png")

代碼如下(示例):

from playwright.sync_api import sync_playwright



with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, slow_mo=1000)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://blog.csdn.net/weixin_44688529?spm=1010.2135.3001.5343")
    print(page.title())
    page.screenshot(path="screenshot.png")

截長(zhǎng)圖

page.screenshot(path="screenshot.png", full_page=True)

代碼如下(示例):

from playwright.sync_api import sync_playwright



with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, slow_mo=1000)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://blog.csdn.net/weixin_44688529?spm=1010.2135.3001.5343")
    print(page.title())
    page.screenshot(path="screenshot.png", full_page=True)

截取單個(gè)元素

先定位到需要截圖的元素,再截圖保存

from playwright.async_api import Playwright
from playwright.sync_api import sync_playwright

def run(playwright: Playwright):
    # 啟動(dòng) chromium 瀏覽器
    browser = p.chromium.launch(headless=False,slow_mo=1000)
    context = browser.new_context()
    # 打開(kāi)一個(gè)標(biāo)簽頁(yè)
    page = context.new_page()
    # 打開(kāi)百度
    page.goto("http://192.168.64.209:8008/#/login")
    # 打印當(dāng)前頁(yè)面title
    print(page.title())
    page.locator(".s-canvas").screenshot(path="example.png")

到此這篇關(guān)于python playwright實(shí)現(xiàn)獲取當(dāng)前頁(yè)面的截圖的文章就介紹到這了,更多相關(guān) playwright獲取截圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python機(jī)器學(xué)習(xí)之決策樹(shù)

    Python機(jī)器學(xué)習(xí)之決策樹(shù)

    這篇文章主要介紹了Python機(jī)器學(xué)習(xí)之決策樹(shù),文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • python基礎(chǔ)教程之基本內(nèi)置數(shù)據(jù)類型介紹

    python基礎(chǔ)教程之基本內(nèi)置數(shù)據(jù)類型介紹

    在Python程序中,每個(gè)數(shù)據(jù)都是對(duì)像,每個(gè)對(duì)像都有自己的一個(gè)類型。不同類型有不同的操作方法,使用內(nèi)置數(shù)據(jù)類型獨(dú)有的操作方法,可以更快的完成很多工作
    2014-02-02
  • opencv+python識(shí)別七段數(shù)碼顯示器的數(shù)字(數(shù)字識(shí)別)

    opencv+python識(shí)別七段數(shù)碼顯示器的數(shù)字(數(shù)字識(shí)別)

    本文主要介紹了opencv+python識(shí)別七段數(shù)碼顯示器的數(shù)字(數(shù)字識(shí)別),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • pycharm中執(zhí)行.sh文件的方法步驟

    pycharm中執(zhí)行.sh文件的方法步驟

    本文主要介紹了pycharm中執(zhí)行.sh文件的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • Python中判斷對(duì)象是否為空的方法

    Python中判斷對(duì)象是否為空的方法

    在Python開(kāi)發(fā)中,判斷對(duì)象是否為“空”是高頻操作,但看似簡(jiǎn)單的需求卻暗藏玄機(jī),從None到空容器,從零值到自定義對(duì)象的“假值”狀態(tài),不同場(chǎng)景下的“空”需要精準(zhǔn)區(qū)分,本文將系統(tǒng)梳理Python中“空”的判定邏輯,揭示常見(jiàn)誤區(qū),并提供實(shí)用解決方案,需要的朋友可以參考下
    2025-04-04
  • darknet框架中YOLOv3對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練和預(yù)測(cè)詳解

    darknet框架中YOLOv3對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練和預(yù)測(cè)詳解

    這篇文章主要為大家介紹了darknet框架中YOLOv3對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練和預(yù)測(cè)使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • python ftplib上傳文件名亂碼的解決辦法

    python ftplib上傳文件名亂碼的解決辦法

    本文主要介紹了python ftplib上傳文件名亂碼的解決辦法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • 淺談python新式類和舊式類區(qū)別

    淺談python新式類和舊式類區(qū)別

    python的新式類是2.2版本引進(jìn)來(lái)的,我們可以將之前的類叫做經(jīng)典類或者舊式類。這篇文章主要介紹了淺談python新式類和舊式類區(qū)別,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • python 虛擬環(huán)境調(diào)用allure報(bào)錯(cuò):FileNotFoundError: [WinError 2] 系統(tǒng)找不到指定的文件

    python 虛擬環(huán)境調(diào)用allure報(bào)錯(cuò):FileNotFoundError: [WinError

    python代碼調(diào)用命令行 allure命令報(bào)錯(cuò),提示找不到allure這個(gè)命令,本文就詳細(xì)的介紹了具體的解決方法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • JupyterNotebook 如何調(diào)整輸出窗口的顯示效果

    JupyterNotebook 如何調(diào)整輸出窗口的顯示效果

    這篇文章主要介紹了JupyterNotebook 輸出窗口的顯示效果調(diào)整實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評(píng)論

偃师市| 周至县| 当阳市| 茂名市| 富裕县| 旬阳县| 永昌县| 开阳县| 社会| 应城市| 望都县| 莲花县| 蕉岭县| 康乐县| 尼勒克县| 连城县| 新宁县| 东乡族自治县| 仪陇县| 定兴县| 定襄县| 屏边| 塘沽区| 天水市| 奈曼旗| 阿克苏市| 永平县| 新余市| 墨玉县| 眉山市| 进贤县| 安龙县| 莱阳市| 南开区| 疏附县| 百色市| 高清| 仪征市| 台东县| 河池市| 诸暨市|