基于Python开发chrome插件的方法分析


Posted in Python onJuly 07, 2018

本文实例讲述了基于Python开发chrome插件的方法。分享给大家供大家参考,具体如下:

谷歌Chrome插件是使用HTML、JavaScript和CSS编写的。如果你之前从来没有写过Chrome插件,我建议你读一下这个。在这篇教程中,我们将教你如何使用Python代替JavaScript。

创建一个谷歌Chrome插件

首先,我们必须创建一个清单文件:manifest.json。

{
 "manifest_version": 2,
 "name": "Python Chrome Plugin",
 "description": "This extension runs Python code.",
 "version": "1.0",
 "browser_action": {
  "default_icon": "icon.png",
  "default_popup": "popup.html"
 },
 "permissions": [
  "activeTab",
  "https://ajax.googleapis.com/"
 ]
}

然后创建一个名为popup.html的文件:

<!doctype html>
<!--
 This page is shown when the extension button is clicked, because the
 "browser_action" field in manifest.json contains the "default_popup" key with
 value "popup.html".
 -->
<html>
 <head>
  <title>Getting Started Extension's Popup</title>
  <style>
   body {
    font-family: "Segoe UI", "Lucida Grande", Tahoma, sans-serif;
    font-size: 100%;
   }
   #status {
    /* avoid an excessively wide status text */
    white-space: pre;
    text-overflow: ellipsis;
    overflow: hidden;
    max-width: 400px;
   }
  </style>
  <!--
   - JavaScript and HTML must be in separate files: see our Content Security
   - Policy documentation[1] for details and explanation.
   -
   - [1]: https://developer.chrome.com/extensions/contentSecurityPolicy
   -->
  <script src="popup.js"></script>
 </head>
 <body>
  <div id="status"></div>
  <img id="image-result" hidden>
 </body>
</html>

最后得到一个图标,并保存为icon.png。打开chrome://extensions,点击开发者模式。点击“加载未打包扩展程序”,选择文件夹,点击OK。

为Chrome扩展程序添加Python

现在你拥有了最基本的权利,我们可以在代码中添加Python。为了能在一个浏览器中运行Python,你有很多个选择,包括Brython和emcascripten。我们决定使用Brython。我们将从一个服务器运行Brython脚本。改变popup.html的内容:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta charset="iso-8859-1">
<style>
body {
  margin: 0 !important;
  padding: 0 !important;
  width: 800;
}
#frame {
  overflow: hidden;
  width:790;
  height:324;
}
</style>
</head>
<body onLoad="">
<iframe src=http://brython.info/console.html id="frame" seamless="seamless" scrolling="no"></iframe>
</body>
</html>

重启下你的插件,你就会在你的谷歌Chrome浏览器中得到一个Python(Brython)解释器。

基于Python开发chrome插件的方法分析

运行你自己的脚本

为了能够运行你自己的脚本,简单地修改一下popup.html框架中的url即可:

<iframe src="BRYTHON SCRIPT URL" id="frame" seamless="seamless" scrolling="no"></iframe>

这个脚本应该运行在你自己的服务器上。你可以从网上运行任意的Brython脚本。利用Brython,你可以简单地在脚本标签中输入Python代码。

总结:

Chrome插件是使用HTML、JavaScript和CSS创建的。我们想知道在谷歌Chrome插件中能否使用Python代码。我们最终得到了一个浏览器中的Python解释器和执行Python脚本的能力。记住,这只是个实现性的结果,只是一个玩具,在这一点上,我不建议你将所有的插件都移植或建立在Brython上。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python字符串和文件操作常用函数分析
Apr 08 Python
python 接口测试response返回数据对比的方法
Feb 11 Python
Python遍历numpy数组的实例
Apr 04 Python
对numpy的array和python中自带的list之间相互转化详解
Apr 13 Python
Python基于递归算法求最小公倍数和最大公约数示例
Jul 27 Python
如何用OpenCV -python3实现视频物体追踪
Dec 04 Python
kafka监控获取指定topic的消息总量示例
Dec 23 Python
python实现FTP循环上传文件
Mar 20 Python
Python基于requests实现模拟上传文件
Apr 21 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
May 25 Python
如何解决pycharm调试报错的问题
Aug 06 Python
pycharm使用技巧之自动调整代码格式总结
Nov 04 Python
Python实现基于C/S架构的聊天室功能详解
Jul 07 #Python
Python实现的txt文件去重功能示例
Jul 07 #Python
Django 多语言教程的实现(i18n)
Jul 07 #Python
python利用requests库进行接口测试的方法详解
Jul 06 #Python
python生成密码字典的方法
Jul 06 #Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
Jul 06 #Python
使用python中的in ,not in来检查元素是不是在列表中的方法
Jul 06 #Python
You might like
用PHP制作静态网站的模板框架
2006/10/09 PHP
修改ThinkPHP缓存为Memcache的方法
2014/06/25 PHP
YII路径的用法总结
2014/07/09 PHP
destoon数据库表说明汇总
2014/07/15 PHP
多个iframe自动调整大小的问题
2006/09/18 Javascript
jquery.validate使用攻略 第五步 正则验证
2010/07/01 Javascript
jQuery实现鼠标滑过遮罩并高亮显示效果
2013/07/16 Javascript
可以用鼠标拖动的DIV实现思路及代码
2013/10/21 Javascript
使用Browserify配合jQuery进行编程的超级指南
2015/07/28 Javascript
自定义刻度jQuery进度条及插件
2015/09/02 Javascript
WordPress中利用AJAX异步获取评论用户头像的方法
2016/01/08 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
微信小程序开发之相册选择和拍照详解及实例代码
2017/02/22 Javascript
详解nodeJS之路径PATH模块
2017/05/31 NodeJs
jQuery Dom元素操作技巧
2018/02/04 jQuery
新手必须知的Node.js 4个JavaScript基本概念
2018/09/16 Javascript
微信小程序 云开发模糊查询实现解析
2019/09/02 Javascript
[01:04:30]Fnatic vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python访问纯真IP数据库的代码
2011/05/19 Python
全面理解Python中self的用法
2016/06/04 Python
flask + pymysql操作Mysql数据库的实例
2017/11/13 Python
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
如何基于Python制作有道翻译小工具
2019/12/16 Python
Pytorch 实现权重初始化
2019/12/31 Python
Python中使用filter过滤列表的一个小技巧分享
2020/05/02 Python
利用python制作拼图小游戏的全过程
2020/12/04 Python
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
经贸日语专业个人求职信
2013/12/13 职场文书
大三学生学年自我鉴定
2014/09/12 职场文书
2015年仓管员工作总结
2015/04/21 职场文书
提升Nginx性能的一些建议
2021/03/31 Servers
python解析json数据
2022/04/29 Python
分享几个实用的CSS代码块
2022/06/10 HTML / CSS
ubuntu20.04虚拟机无法上网的问题及解决
2022/12/24 Servers