Playwright处理本地文档

请问下python中的playwright处理本地文档要怎么写?已知路径前要加上file://。

Playwright 是一个用于自动化浏览器操作的库,它通常用于自动化Web应用程序的端到端测试。处理本地HTML文档,你可以通过Playwright启动浏览器,然后使用 goto 方法加载本地文件的路径。这里是一个基本的示例:

from playwright.sync_api import sync_playwright

with sync_playwright() as p:
    browser = p.chromium.launch()
    page = browser.new_page()
    # 加载本地HTML文件
    # 替换file_path为你的文件实际路径,例如 'file:///C:/path/to/your/local/file.html'
    page.goto('file:///path/to/local/file.html')
    # 你可以在这里执行其他操作,比如截图、获取页面内容等
    # 关闭浏览器
    browser.close()

如果你是使用异步API,代码会稍有不同,这里给出了异步版本的示例:

import asyncio
from playwright.async_api import async_playwright

async def run_playwright():
    async with async_playwright() as p:
        browser = await p.chromium.launch()
        page = await browser.new_page()
        # 加载本地HTML文件
        # 替换file_path为你的文件实际路径,例如 'file:///C:/path/to/your/local/file.html'
        await page.goto('file:///path/to/local/file.html')
        # 执行其他操作
        await browser.close()

asyncio.run(run_playwright())

请确保将 'file:///path/to/local/file.html' 替换为你实际的本地文件URI,并且注意路径格式对于不同操作系统可能略有差别。Windows上可能需要额外的/,类似于'file:///C:/path/to/local/file.html'

在处理本地文件时,特别是在window环境下,路径通常需要是绝对路径,并且文件路径应该使用正斜杠/或者双反斜杠\\,以避免与Python字符串中的转义字符混淆。

如需进一步处理元素,你可以使用Playwright提供的各种选择器和API方法,比如通过CSS选择器找到特定元素,或者执行JavaScript代码等。

2 个赞
from playwright.sync_api import sync_playwright
from pathlib import Path

path = Path("/home/blender/文档/playwrightest/xx/")

with sync_playwright() as p:
    browser = p.chromium.launch(headless=True)
    page = browser.new_page()
    for file in path.glob("**/*.html"):  #这里遍历所有文件
        page.goto(f'file:///home/blender/文档/playwrightest/xx/{file.stem}.html')
        # page.wait_for_timeout(1000)
        lcs = page.locator("td.katsuyo.katsuyo_jisho_js > div:nth-child(1)").all()
        for lc in lcs:
            with open("ojda.txt", "a", encoding="utf-8") as ff:
                ff.write(lc.inner_text().replace(" ", "").strip() + "\n")
                ff.write(f"@@@LINK={file.stem}\n")
                ff.write("</>\n")
    browser.close()

感谢,棒极了