基于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实现的二维码生成小软件
Jul 11 Python
python脚本监控docker容器
Apr 27 Python
python3 shelve模块的详解
Jul 08 Python
对Python定时任务的启动和停止方法详解
Feb 19 Python
pandas数据处理进阶详解
Oct 11 Python
Python tkinter三种布局实例详解
Jan 06 Python
Python networkx包的实现
Feb 14 Python
django 数据库 get_or_create函数返回值是tuple的问题
May 15 Python
基于Python 的语音重采样函数解析
Jul 06 Python
Python判断字符串是否为合法标示符操作
Sep 03 Python
python中Pexpect的工作流程实例讲解
Mar 02 Python
Python语言内置数据类型
Feb 24 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动态编译出现Cannot find autoconf的解决方法
2014/11/05 PHP
php三种实现多线程类似的方法
2015/10/30 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
javascript offsetX与layerX区别
2010/03/12 Javascript
jquery cookie的用法总结
2013/11/18 Javascript
点击显示指定元素隐藏其他同辈元素的方法
2014/02/19 Javascript
javascript实现给定半径求出圆的面积
2015/06/26 Javascript
理解JavaScript中worker事件api
2015/12/25 Javascript
使用jQuery制作基础的Web图片轮播效果
2016/04/22 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
JS制作类似选项卡切换的年历
2016/12/03 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
2016/12/22 Javascript
浅谈vue中数据双向绑定的实现原理
2017/09/14 Javascript
JS 实现发送短信验证码的“59秒后重新发送验证短信”功能
2019/08/23 Javascript
如何基于jQuery实现五角星评分
2020/09/02 jQuery
vue在图片上传的时候压缩图片
2020/11/18 Vue.js
kNN算法python实现和简单数字识别的方法
2014/11/18 Python
在Docker上开始部署Python应用的教程
2015/04/17 Python
利用python画出折线图
2018/07/26 Python
pycharm 激活码及使用方式的详细教程
2020/05/12 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
Python如何使用ElementTree解析xml
2020/10/12 Python
Django admin组件的使用
2020/10/24 Python
CSS3为背景图设置遮罩并解决遮罩样式继承问题
2020/06/22 HTML / CSS
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
法国亚马逊官方网站:Amazon.fr
2020/12/19 全球购物
简短大学毕业感言
2014/01/18 职场文书
考生诚信考试承诺书
2014/05/23 职场文书
投标服务承诺书
2014/05/28 职场文书
英语系本科生求职信
2014/07/15 职场文书
大学生暑期实践报告
2015/07/13 职场文书
2015年高中生国庆节演讲稿
2015/07/30 职场文书
安全主题班会教案
2015/08/12 职场文书
Go 自定义package包设置与导入操作
2021/05/06 Golang
pytorch 如何把图像数据集进行划分成train,test和val
2021/05/31 Python
muduo TcpServer模块源码分析
2022/04/26 Redis