基于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实现多进程共享数据的方法分析
Dec 04 Python
pandas数据框,统计某列数据对应的个数方法
Apr 11 Python
Django rest framework实现分页的示例
May 24 Python
在python中安装basemap的教程
Sep 20 Python
在pytorch中查看可训练参数的例子
Aug 18 Python
关于Python-faker的函数效果一览
Nov 28 Python
关于Tensorflow使用CPU报错的解决方式
Feb 05 Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
Apr 14 Python
python中rb含义理解
Jun 18 Python
如何完美的建立一个python项目
Oct 09 Python
python中scipy.stats产生随机数实例讲解
Feb 19 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
为什么《星际争霸》是测试人工智能的理想战场
2019/12/03 星际争霸
PHP中date()日期函数有关参数整理
2011/07/19 PHP
php使用curl访问https示例分享
2014/01/17 PHP
PHP队列用法实例
2014/11/05 PHP
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
php根据用户语言跳转相应网页
2015/11/04 PHP
Yii实现简单分页的方法
2016/04/29 PHP
thinkphp实现分页显示功能
2016/12/03 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
2017/04/19 PHP
js no-repeat写法 背景不重复
2009/03/18 Javascript
浅谈JS函数定义方式的区别
2016/10/30 Javascript
Validform表单验证总结篇
2016/10/31 Javascript
Bootstrap基本插件学习笔记之Tooltip提示工具(18)
2016/12/08 Javascript
wap手机端解决返回上一页的js实例
2016/12/08 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
Vue中用props给data赋初始值遇到的问题解决
2018/11/27 Javascript
python实现从web抓取文档的方法
2014/09/26 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
2015/06/30 Python
Python上传package到Pypi(代码简单)
2016/02/06 Python
python利用标准库如何获取本地IP示例详解
2017/11/01 Python
Python实现OpenCV的安装与使用示例
2018/03/30 Python
Flask框架信号用法实例分析
2018/07/24 Python
python requests.post带head和body的实例
2019/01/02 Python
python三引号输出方法
2019/02/27 Python
如何使用Python实现自动化水军评论
2019/06/26 Python
Django框架视图层URL映射与反向解析实例分析
2019/07/29 Python
英国Office鞋店德国网站:在线购买鞋子、靴子和运动鞋
2018/12/19 全球购物
物流毕业生个人的自我评价
2014/02/13 职场文书
股份合作协议书
2014/04/12 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
保外就医申请书范文
2015/08/06 职场文书
2016年大学生社区服务活动总结
2016/04/06 职场文书
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server
zabbix监控mysql的实例方法
2021/06/02 MySQL
Python基础 括号()[]{}的详解
2021/11/07 Python
MySQL的索引你了解吗
2022/03/13 MySQL