基于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 相关文章推荐
使用Pyrex来扩展和加速Python程序的教程
Apr 13 Python
python协程用法实例分析
Jun 04 Python
python生成随机图形验证码详解
Nov 08 Python
Python闭包之返回函数的函数用法示例
Jan 27 Python
python 如何将数据写入本地txt文本文件的实现方法
Sep 11 Python
python关于变量名的基础知识点
Mar 03 Python
如何使用pandas读取txt文件中指定的列(有无标题)
Mar 05 Python
深入了解NumPy 高级索引
Jul 24 Python
Pycharm新手使用教程(图文详解)
Sep 17 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
Jan 12 Python
Python中Qslider控件实操详解
Feb 20 Python
Python 多线程处理任务实例
Nov 07 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中强制下载文件的代码(解决了IE下中文文件名乱码问题)
2011/05/09 PHP
使用PHP编写发红包程序
2015/07/22 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
动态样式类封装JS代码
2009/09/02 Javascript
javascript 面向对象编程  function是方法(函数)
2009/09/17 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
用js格式化金额可设置保留的小数位数
2014/05/09 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
javascript实现二级级联菜单的简单制作
2015/11/19 Javascript
BootStrap响应式导航条实例介绍
2016/05/06 Javascript
js无法获取到html标签的属性的解决方法
2016/07/26 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
分享5个顶级的JavaScript Ajax组件库
2018/09/16 Javascript
jQuery实现表格的增、删、改操作示例
2019/01/27 jQuery
微信小程序实现购物页面左右联动
2019/02/15 Javascript
vue实现局部刷新的实现示例
2019/04/16 Javascript
vue实现图片上传功能
2020/05/28 Javascript
uniapp与webview之间的相互传值的实现
2020/06/29 Javascript
解决vue项目中遇到 Cannot find module ‘chalk‘ 报错的问题
2020/11/05 Javascript
[04:11]DOTA2亚洲邀请赛小组赛第一日 TOP10精彩集锦
2015/01/30 DOTA
Django中的ajax请求
2018/10/19 Python
Python3对称加密算法AES、DES3实例详解
2018/12/06 Python
Python命名空间的本质和加载顺序
2018/12/17 Python
用python做游戏的细节详解
2019/06/25 Python
Python Django Cookie 简单用法解析
2019/08/13 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
绩效专员岗位职责
2013/12/02 职场文书
自我鉴定三原则
2014/01/13 职场文书
平安校园建设方案
2014/05/02 职场文书
环保标语大全
2014/06/12 职场文书
党员学习党的群众路线思想汇报(5篇)
2014/09/10 职场文书
税务职业生涯规划书范文
2014/09/16 职场文书
我爱我班主题班会
2015/08/13 职场文书
利用python Pandas实现批量拆分Excel与合并Excel
2021/05/23 Python
使用ORM新增数据在Mysql中的操作步骤
2021/07/26 MySQL