用playwright写一段允许js并获取执行结果的代码兼容asycio
以下是使用Playwright编写的允许JS并获取执行结果的代码,兼容asyncio:
import asyncio
from playwright.async_api import async_playwright, Playwright
async def run_js(script: str) -> str:
async with async_playwright() as p:
browser: Playwright = await p.chromium.launch()
page = await browser.new_page()
result = await page.evaluate(script)
await browser.close()
return result
async def main():
script = "(() => { return 'Hello, World!'; })();"
result = await run_js(script)
print(result)
loop = asyncio.get_event_loop()
loop.run_until_complete(main())
这段代码定义了一个run_js函数,该函数使用Playwright启动一个Chromium浏览器实例,并在新页面中执行传递的JavaScript代码。然后,该函数关闭浏览器并返回执行结果。
在主函数中,我们定义了要执行的JavaScript代码,并将其传递给run_js函数。然后,我们打印返回的结果。
该代码使用asyncio库来运行异步代码。可以使用asyncio.run函数来简化代码,并自动创建和关闭事件循环:
import asyncio
from playwright.async_api import async_playwright, Playwright
async def run_js(script: str) -> str:
async with async_playwright() as p:
browser: Playwright = await p.chromium.launch()
page = await browser.new_page()
result = await page.evaluate(script)
await browser.close()
return result
async def main():
script = "(() => { return 'Hello, World!'; })();"
result = await run_js(script)
print(result)
asyncio.run(main())
原文地址: https://www.cveoy.top/t/topic/bZcu 著作权归作者所有。请勿转载和采集!