基于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中将阿拉伯数字转换成中文的实现代码
May 19 Python
python生成随机图形验证码详解
Nov 08 Python
python使用锁访问共享变量实例解析
Feb 08 Python
python中的内置函数max()和min()及mas()函数的高级用法
Mar 29 Python
Python使用add_subplot与subplot画子图操作示例
Jun 01 Python
TensorFlow实现Logistic回归
Sep 07 Python
python分数表示方式和写法
Jun 26 Python
Django Rest framework三种分页方式详解
Jul 26 Python
Python面向对象之继承原理与用法案例分析
Dec 31 Python
Python Django form 组件动态从数据库取choices数据实例
May 19 Python
python绕过图片滑动验证码实现爬取PTA所有题目功能 附源码
Jan 06 Python
python turtle绘制多边形和跳跃和改变速度特效
Mar 16 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
一个域名查询的程序
2006/10/09 PHP
PHP 最大运行时间 max_execution_time修改方法
2010/03/08 PHP
php更新mysql后获取影响的行数发生异常解决方法
2013/03/28 PHP
详解php用curl调用接口方法,get和post两种方式
2017/01/13 PHP
使用php实现网站验证码功能【推荐】
2017/02/09 PHP
php中的buffer缓冲区用法分析
2019/05/31 PHP
获取页面高度,窗口高度,滚动条高度等参数值getPageSize,getPageScroll
2006/09/22 Javascript
JS中==与===操作符的比较
2009/03/21 Javascript
妙用Jquery的val()方法
2012/06/27 Javascript
THREE.JS入门教程(6)创建自己的全景图实现步骤
2013/01/25 Javascript
js跨域请求的5中解决方式
2015/07/02 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
2016/09/19 Javascript
Sortable.js拖拽排序使用方法解析
2016/11/04 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
关于TypeScript中import JSON的正确姿势详解
2017/07/25 Javascript
ES6新增数据结构WeakSet的用法详解
2017/08/07 Javascript
解决jquery的ajax调取后端数据成功却渲染失败的问题
2018/08/08 jQuery
vue+element-ui动态生成多级表头的方法
2018/08/28 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
使用Python的turtle模块画图的方法
2017/11/15 Python
Python中sort和sorted函数代码解析
2018/01/25 Python
pandas对指定列进行填充的方法
2018/04/11 Python
python实现RabbitMQ的消息队列的示例代码
2018/11/08 Python
Python实现从SQL型数据库读写dataframe型数据的方法【基于pandas】
2019/03/18 Python
如何运行带参数的python脚本
2019/11/15 Python
使用pandas的box_plot去除异常值
2019/12/10 Python
Tensorflow Summary用法学习笔记
2020/01/10 Python
谈谈python垃圾回收机制
2020/09/27 Python
Daisy London官网:英国最大的首饰集团IBB旗下
2019/02/28 全球购物
俄罗斯在线购买飞机票、火车票、巴士票网站:Tutu.ru
2020/03/16 全球购物
Whistles官网:英国女装品牌
2020/08/14 全球购物
综合素质评价个性发展自我评价
2015/03/06 职场文书
北京大学中文系教授推荐的10本小说
2019/08/08 职场文书
python文件名批量重命名脚本实例代码
2021/04/22 Python