• cefpython3的使用


    问题描述

    个人最近参加了运维方面相关工作,在工作两三天之后有了萌生制作一款集成化工具的念头,对该模块的学习大部分是为了实现对浏览器网址的集合以及对手动刷新如何实现自动刷新的一些思考,以期完成一款内置浏览器功能的集成化工具。

    cefpython3的安装

    使用pycharm,新建项目后点击Python Packages搜索cefpython3点击下载即可
    在这里插入图片描述
    在这里插入图片描述
    注:python3.11版本不支持cefpython3,安装前请首先确定您的python,若python3.11运行该库的相关代码会报如下图所示错误:
    在这里插入图片描述

    简单测试能否使用

    #从cefpython3中引入cefpython并起别名为cef
    from cefpython3 import cefpython as cef
    #打印cefpython的版本信息
    print(cef.GetVersion())  
    
    • 1
    • 2
    • 3
    • 4

    若无任何错误,则会返回类似于如下形式的信息:
    C:\Users\WY204\venv\Scripts\python.exe D:\pythonProject\爬虫\main.py
    {‘version’: ‘66.1’, ‘chrome_version’: ‘66.0.3359.181’, ‘cef_version’: ‘3.3359.1774.gd49d25f’, ‘cef_api_hash_platform’: ‘6b57a640612f8d459042917ad2568b1526a70af4’, ‘cef_api_hash_universal’: ‘84263345b0b1143139aba560e5e5ed16fb6a9628’, ‘cef_commit_hash’: ‘d49d25f881b68f418e243e12801cbbb7caebb563’, ‘cef_commit_number’: ‘1774’}
    进程已结束,退出代码0

    Hello World之旅

    # 引入相关库
    from cefpython3 import cefpython as cef
    import sys
    
    # 定义主函数
    def main():
        #1 处理异常
        sys.excepthook=cef.ExceptHook
        #2 初始化cef
        cef.Initialize()
        #3 设置GUI视图布局
        cef.CreateBrowserSync(url=cef.GetDataUrl("Hello World"))
    
        #4 消息主循环(保证窗体不会一闪而过)
        cef.MessageLoop()
        #5 关闭所有相关进程
        cef.Shutdown()
    
    #6 运行主函数,可理解为接口
    if __name__=='__main__':
        main()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    运行后结果如下图所示:
    在这里插入图片描述
    相关个人理解如下:

    • 1处将cef异常赋给了系统异常(此处暂时个人不是什么理解其含义)
    • 2处初始化了cef,类似于pygame模块使用前都会进行一个初始化
    • 3处个人简单理解为创建了一个承载相关内容的界面,cef.GetDataUrl方法让其取了括号内容并显示到该页面上
    • 4处类似于我们写死的一个for循环,保证该3处窗口一直显示且能接收用户相关操作
    • 5处即使用完毕关闭该应用,个人暂时理解为与初始化成对出现类似于开关,用的时候开,用完了关
    • 6处调用了定义好的main()函数

    相关思考

    若是把3处url换成网址会出现什么情况呢?如下图展示情况:

        cef.CreateBrowserSync(url="http://www.iqiyi.com/")
    
    • 1

    再次运行后出现了如下图所示内容:
    在这里插入图片描述

    参考文档

    • Python GUI: cefpython3的简单分析和应用文章链接
    • Python 开发笔记《CEF Python 使用Web技术作为Python GUI解决方案》文章链接
  • 相关阅读:
    高可用系统有哪些设计原则
    不敢相信,只用500页笔记就趣谈了网络协议
    记录一次服务器CPU负载高,利用率正常的处理方法
    Elasticsearch 基于地理位置的搜索查询
    C++11之空指针-nullptr
    Redis集群高可用架构
    制作一个简单HTML公司官网网页设计(HTML+CSS)
    3分钟火速手写一个二叉查找树,搞快点。
    windows环境下安装Java过程(免登录Oracle官网下载java)
    以太坊合并升级的全面介绍
  • 原文地址:https://blog.csdn.net/weixin_51371629/article/details/127710908