不需要驱动的自动化
import asyncio
from Decorator import Decorator
from playwright.async_api import async_playwright
class MyClass:
@Decorator.retry
async def run_html(self, playwright, url: str):
# 启动 Chromium 浏览器,无头模式(headless=True 表示不显示浏览器界面)
browser = await playwright.chromium.launch(headless=False)
# 在浏览器中创建一个新的上下文
context = await browser.new_context()
# 在上下文里创建一个新的页面
page = await context.new_page()
# 向页面添加一个初始化脚本,脚本的路径为 './stealth.min.js'
# await page.add_init_script(path='./stealth.min.js')
# 导航到指定的 URL,设置超时时间为 4000 毫秒
await page.goto(url, timeout=4000)
# 暂停 5 秒
await asyncio.sleep(5)
# 获取页面的内容
fp = await page.content()
# 返回页面内容
return fp
async def response_page(self, page_url):
# 使用async_playwright上下文管理器来初始化playwright对象。这是Playwright库的常见用法,
# 用于管理Playwright相关资源的创建和释放。
async with async_playwright() as playwright:
# 调用self对象的run_html方法(假设self是一个类实例,并且run_html方法是在该类中定义的),
# 传入playwright对象和page_url,并等待这个异步操作完成。
# 这个操作可能是获取指定page_url的页面 HTML 内容,结果存储在res变量中。
res = await self.run_html(playwright, page_url)
# 检查是否成功获取到页面内容。如果res不为空(表示获取成功),则继续后续操作;
# 否则,可能会有相应的错误处理(这里未显示)
return res
async def main():
obj = MyClass()
page_url='http://edutoutiao.com/zxx/15233.html'
result = await obj.response_page(page_url)
print(result)
asyncio.run(main())
本文作者:布都御魂
本文链接:https://www.cnblogs.com/wolvies/p/18436312
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2021-09-27 AttributeError: ‘NoneType‘ object has no attribute ‘group‘
2021-09-27 解决Selenium无法启动的问题:WebDriverException: Message: chrome not reachable