基于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多线程编程(一):threading模块综述
Apr 05 Python
在Python的Bottle框架中使用微信API的示例
Apr 23 Python
django之session与分页(实例讲解)
Nov 13 Python
简述:我为什么选择Python而不是Matlab和R语言
Nov 14 Python
利用python对Excel中的特定数据提取并写入新表的方法
Jun 14 Python
python计算两个矩形框重合百分比的实例
Nov 07 Python
Python pip install如何修改默认下载路径
Apr 29 Python
pandas参数设置的实用小技巧
Aug 23 Python
Python 的 __str__ 和 __repr__ 方法对比
Sep 02 Python
python 输入字符串生成所有有效的IP地址(LeetCode 93号题)
Oct 15 Python
教你怎么用Python监控愉客行车程
Apr 29 Python
如何使用pdb进行Python调试
Jun 30 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的输出:缓存并压缩动态页面
2013/06/11 PHP
jQuery bind事件使用详解
2011/05/05 Javascript
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
js数组的基本用法及数组根据下标(数值或字符)移除元素
2013/10/20 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
做web开发 先学JavaScript
2014/12/12 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
NodeJS中利用Promise来封装异步函数
2015/02/25 NodeJs
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
基于jquery实现智能提示控件intellSeach.js
2016/03/17 Javascript
JS中JSON对象和String之间的互转及处理技巧
2016/04/06 Javascript
Bootstrap实现水平排列的表单
2016/07/04 Javascript
Bootstrap Table使用方法解析
2016/10/19 Javascript
js实现背景图自适应窗口大小
2017/01/10 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
2017/01/17 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
微信小程序scroll-x失效的完美解决方法
2018/07/18 Javascript
vue通过cookie获取用户登录信息的思路详解
2018/10/30 Javascript
jQuery中使用validate插件校验表单功能
2019/05/24 jQuery
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
vue实现井字棋游戏
2020/09/29 Javascript
Vue toFixed保留两位小数的3种方式
2020/10/23 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
简洁的十分钟Python入门教程
2015/04/03 Python
详解Python pygame安装过程笔记
2017/06/05 Python
Python OpenCV获取视频的方法
2018/02/28 Python
python 列表删除所有指定元素的方法
2018/04/19 Python
详解Python中的四种队列
2018/05/21 Python
django model object序列化实例
2020/03/13 Python
详解三种方式实现平滑滚动页面到顶部的功能
2019/04/23 HTML / CSS
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
大学生实习感言
2014/01/16 职场文书
食品安全承诺书范文
2014/08/29 职场文书
无房证明范本
2014/09/17 职场文书
药店收银员岗位职责
2015/04/07 职场文书
2016年小学生寒假家长评语
2015/10/10 职场文书