请问下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 Likes
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()
感谢,棒极了