基于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爬虫之爬虫的定义及URL构成
Nov 04 Python
Python合并多个装饰器小技巧
Apr 28 Python
详解Python中的元组与逻辑运算符
Oct 13 Python
Python判断某个用户对某个文件的权限
Oct 13 Python
Python字符串格式化的方法(两种)
Sep 19 Python
python如何拆分含有多种分隔符的字符串
Mar 20 Python
python 抓包保存为pcap文件并解析的实例
Jul 23 Python
Python enumerate() 函数如何实现索引功能
Jun 29 Python
Python使用pyexecjs代码案例解析
Jul 13 Python
高考考python编程是真的吗
Jul 20 Python
Python tkinter制作单机五子棋游戏
Sep 14 Python
python生成随机数、随机字符、随机字符串
Apr 06 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实现中文字符截取防乱码方法汇总
2015/04/29 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
详解使用php调用微信接口上传永久素材
2017/04/11 PHP
个人总结的一些关于String、Function、Array的属性和用法
2007/01/10 Javascript
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
Javascript this 的一些学习总结
2012/08/02 Javascript
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
JavaScript中的运算符种类及其规则介绍
2013/09/26 Javascript
JavaScript中的this关键字使用方法总结
2015/03/13 Javascript
浅谈jquery点击label触发2次的问题
2016/06/12 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
利用纯js + transition动画实现移动端web轮播图详解
2017/09/10 Javascript
shiro授权的实现原理
2017/09/21 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
2018/10/07 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
python开发中range()函数用法实例分析
2015/11/12 Python
python采用django框架实现支付宝即时到帐接口
2016/05/17 Python
Python文件操作,open读写文件,追加文本内容实例
2016/12/14 Python
Python中文编码知识点
2019/02/18 Python
如何在Python3中使用telnetlib模块连接网络设备
2020/09/21 Python
CSS3常用的几种颜色渐变模式总结
2016/11/18 HTML / CSS
美国第一大药店连锁机构:Walgreens(沃尔格林)
2019/10/10 全球购物
配件采购员岗位职责
2013/12/03 职场文书
护士个人自我鉴定
2014/03/24 职场文书
关于教师节的广播稿
2014/09/10 职场文书
2014年文员工作总结
2014/11/18 职场文书
2014社区健康教育工作总结
2014/12/16 职场文书
市级三好学生评语
2014/12/29 职场文书
2015年乡镇信访工作总结
2015/04/07 职场文书
提升Nginx性能的一些建议
2021/03/31 Servers
《乙女游戏世界对路人角色很不友好》OP主题曲无字幕动画MV公开
2022/04/05 日漫
源码安装apache脚本部署过程详解
2022/09/23 Servers