问题描述
个人最近参加了运维方面相关工作,在工作两三天之后有了萌生制作一款集成化工具的念头,对该模块的学习大部分是为了实现对浏览器网址的集合以及对手动刷新如何实现自动刷新的一些思考,以期完成一款内置浏览器功能的集成化工具。
cefpython3的安装
使用pycharm,新建项目后点击Python Packages搜索cefpython3点击下载即可
注:python3.11版本不支持cefpython3,安装前请首先确定您的python,若python3.11运行该库的相关代码会报如下图所示错误:
简单测试能否使用
#从cefpython3中引入cefpython并起别名为cef
from cefpython3 import cefpython as cef
#打印cefpython的版本信息
print(cef.GetVersion())
若无任何错误,则会返回类似于如下形式的信息:
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处将cef异常赋给了系统异常(此处暂时个人不是什么理解其含义)
- 2处初始化了cef,类似于pygame模块使用前都会进行一个初始化
- 3处个人简单理解为创建了一个承载相关内容的界面,cef.GetDataUrl方法让其取了括号内容并显示到该页面上
- 4处类似于我们写死的一个for循环,保证该3处窗口一直显示且能接收用户相关操作
- 5处即使用完毕关闭该应用,个人暂时理解为与初始化成对出现类似于开关,用的时候开,用完了关
- 6处调用了定义好的main()函数
相关思考
若是把3处url换成网址会出现什么情况呢?如下图展示情况:
cef.CreateBrowserSync(url="http://www.iqiyi.com/")