基于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的Flask框架来构建一个简单的数字商品支付解决方案
Mar 31 Python
使用Python编写一个简单的tic-tac-toe游戏的教程
Apr 16 Python
Python的包管理器pip更换软件源的方法详解
Jun 20 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
Mar 13 Python
python3+PyQt5自定义视图详解
Apr 24 Python
python多线程http压力测试脚本
Jun 25 Python
Python爬虫使用代理IP的实现
Oct 27 Python
使用python绘制二维图形示例
Nov 22 Python
pytorch之添加BN的实现
Jan 06 Python
python json load json 数据后出现乱序的解决方案
Feb 27 Python
Django ORM实现按天获取数据去重求和例子
May 18 Python
如何基于Python代码实现高精度免费OCR工具
Jun 18 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
加强版phplib的DB类
2008/03/31 PHP
php缓冲输出实例分析
2015/01/05 PHP
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
2010/11/14 Javascript
关于Mozilla浏览器不支持innerText的解决办法
2011/01/01 Javascript
javascript图片相似度算法实现 js实现直方图和向量算法
2014/01/14 Javascript
JavaScript学习小结(7)之JS RegExp
2015/11/29 Javascript
js实现文字滚动效果
2016/03/03 Javascript
纯js实现手风琴效果
2020/04/17 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
快速搭建vue2.0+boostrap项目的方法
2018/04/09 Javascript
JavaScript+Canvas实现彩色图片转换成黑白图片的方法分析
2018/07/31 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
发布Angular应用至生产环境的方法
2018/12/10 Javascript
layer的prompt弹出框,点击回车,触发确定事件的方法
2019/09/06 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
JS实现简单移动端鼠标拖拽
2020/07/23 Javascript
Python的Django框架中从url中捕捉文本的方法
2015/07/20 Python
python实现12306火车票查询器
2017/04/20 Python
Python中几种导入模块的方式总结
2017/04/27 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
2020/05/10 Python
Pytorch上下采样函数--interpolate用法
2020/07/07 Python
canvas之万花筒效果的简单实现(推荐)
2016/08/16 HTML / CSS
美国宠物用品网站:Value Pet Supplies
2018/03/17 全球购物
洗煤厂厂长岗位职责
2014/01/03 职场文书
2014年庆元旦活动方案
2014/02/15 职场文书
学校出纳员岗位职责
2014/03/18 职场文书
2014年党员创先争优承诺书
2014/05/29 职场文书
财务部副经理岗位职责范本
2014/06/17 职场文书
交通安全横幅标语
2014/10/07 职场文书
幼儿园见习报告
2014/10/30 职场文书
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA
win10搭建配置ftp服务器的方法
2022/08/05 Servers
Python爬取奶茶店数据分析哪家最好喝以及性价比
2022/09/23 Python