基于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 合并文件的具体实例
Aug 08 Python
利用Django框架中select_related和prefetch_related函数对数据库查询优化
Apr 01 Python
Python 爬虫多线程详解及实例代码
Oct 08 Python
python3.6连接MySQL和表的创建与删除实例代码
Dec 28 Python
python3 图片referer防盗链的实现方法
Mar 12 Python
详解flask表单提交的两种方式
Jul 21 Python
浅谈Python traceback的优雅处理
Aug 31 Python
pandas 中对特征进行硬编码和onehot编码的实现
Dec 20 Python
Python加密模块的hashlib,hmac模块使用解析
Jan 02 Python
python interpolate插值实例
Jul 06 Python
Python-typing: 类型标注与支持 Any类型详解
May 10 Python
如何在C++中调用Python
May 21 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的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
PHP扩展Memcache分布式部署方案
2015/12/06 PHP
PHP对XML内容进行修改和删除实例代码
2016/10/26 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
PHP利用Mysql锁解决高并发的方法
2018/09/04 PHP
laravel validate 设置为中文的例子(验证提示为中文)
2019/09/29 PHP
关于laravel 子查询 &amp; join的使用
2019/10/16 PHP
使用POST方式弹出窗口的两种方法示例介绍
2014/01/29 Javascript
jquery实现弹出层遮罩效果的简单实例
2014/03/03 Javascript
JavaScript中的toDateString()方法使用详解
2015/06/12 Javascript
jQuery操作动态生成的内容的方法
2016/05/28 Javascript
sea.js常用的api简易文档
2016/11/15 Javascript
微信小程序 表单Form实例详解(附源码)
2016/12/22 Javascript
Vue数据驱动模拟实现3
2017/01/11 Javascript
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
Vue.js递归组件构建树形菜单
2017/12/24 Javascript
小程序点赞收藏功能的实现代码示例
2018/09/07 Javascript
jQuery中DOM常见操作实例小结
2019/08/01 jQuery
layui 动态设置checbox 选中状态的例子
2019/09/02 Javascript
vue 设置 input 为不可以编辑的实现方法
2019/09/19 Javascript
微信小程序canvas分享海报功能
2019/10/31 Javascript
Django unittest 设置跳过某些case的方法
2018/12/26 Python
详解用Python进行时间序列预测的7种方法
2020/03/13 Python
完美解决keras 读取多个hdf5文件进行训练的问题
2020/07/01 Python
Python第三方包PrettyTable安装及用法解析
2020/07/08 Python
HTML5和CSS3实例教程总结(推荐)
2016/07/18 HTML / CSS
详解前端HTML5几种存储方式的总结
2016/12/27 HTML / CSS
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
英国家用电器折扣网站:Electrical Discount UK
2018/09/17 全球购物
英国户外服装品牌:Craghoppers
2019/04/25 全球购物
应聘美工求职信
2013/11/07 职场文书
员工薪酬福利制度
2014/01/17 职场文书
考试作弊检讨书大全
2014/02/18 职场文书
教师演讲稿开场白
2014/08/25 职场文书
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript