当前位置: 首页 > news >正文

基于chrome插件的企业应用

一、chrome插件技术介绍

1、chrome插件组件介绍

名称

职责

访问权限

DOM访问情况

popup

弹窗页面。即打开形式是通过点击在浏览器右上方的icon,一个弹窗的形式。

注:

展示维度

browser_action:所有页面

page_action:指定页面

可访问绝大部分api

不可以

background

插件运行的环境。插件启动后就常驻后台,只有一个。这类脚本是运行在浏览器后台的,注意它是与当前浏览页面无关的。

可访问绝大部分api

不可以

content_scripts

注入到Web页面的JS文件。可以是多个,也可以对注入条件进行设置,也就是满足什么条件,才会将这些js文件注入到当前web页面中。

只能访问extennsion、runtime等部分api

例如不能访问chrome.webRequest、chrome.tabs、chrome.windows

可以

2、chrome组件通信方式介绍

接收方

发起方

content_scripts

popup

background

content_scripts

-

Chrome.runtime.sendMessage

Chorme.runntime.connect

Chrome.runtime.sendMessage

Chorme.runntime.connect

popup

Chrome.tabs.sendMessage

Chorme.tabs.connect

-

Chrome.extension.getBackgroudPage()

background

Chrome.tabs.sendMessage

Chorme.tabs.connect

Chrome.extension.getViews

二、应用场景介绍

1、网页翻译插件

利用content-scripts渲染网页翻译页面,然后通过dom元素获取网页内容,最后调用翻译接口即可完成插件实现

2、系统数据爬取插件

利用content-scripts渲染数据爬取页面,然后通过background.js传递系统cookie,最后调用后端爬虫接口即可完成插件实现

注:后端爬虫接口通过selenium-java实现

3、应用效果截图分享

三、源代码分享

插件前端源码:assist-chrome-plugin: chrom助手插件(注:UI风格来自iviewui)

插件后端源码数据爬虫核心代码分享

#初始化配置
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("headless");
chromeOptions.addArguments("no-sandbox");
chromeOptions.addArguments("disable-dev-shm-usage");
Map<String, Object> hashMap = new ConcurrentHashMap<>();
hashMap.put("profile.default_content_settings.popups", 0);
//自动爬取系统文件到本地目录
hashMap.put("download.default_directory", "/download");
chromeOptions.setExperimentalOption("prefs", hashMap);
//chromeOptions.setBinary("D:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe");#开始爬取
ChromeDriver chromeDriver = new ChromeDriver(chromeOptions);
//cookieList来自前端
for(Cookie cookie:cookieList){chromeDriver.manage().addCookie(cookie);
}
chromeDriver.get(pageUrl);
//fecthDataDom为dom对应的cssSelector标签
String fetchDataJs = "return document.querySelector(\""+fecthDataDom+"\").click()";
Thread.sleep(domLoadTime);//dom的渲染时间
chromeDriver.executeScript(fetchDataJs);
chromeDriver.quit();

http://www.lryc.cn/news/404719.html

相关文章:

  • unittest框架和pytest框架区别及示例
  • IDEA性能优化方法解决卡顿
  • Mysql集合转多行
  • MFC:只允许产生一个应用程序实例的具体实现
  • 深入理解TCP/IP协议中的三次握手
  • 【React】事件绑定、React组件、useState、基础样式
  • x264、x265、libaom 编码对比实验
  • c++网络编程实战——开发基于ftp协议的文件传输模块(二) 配置ftp服务与手动执行ftp命令
  • Sphinx 安装相关指令解释
  • npm下载包-更改默认缓存目录
  • PWM再理解(1)
  • CSPVD 智慧工地安全帽安全背心检测开发包
  • 给常用Docker命令起别名,提高效率
  • 基于深度学习的草莓成熟度实时检测系统(UI界面+YOLOv8/v7/v6/v5模型+完整代码与数据集)
  • 【devops】ttyd 一个web版本的shell工具 | web版本shell工具 | web shell
  • Windows环境Apache配置解析PHP,以及配置虚拟主机详解
  • Redis高级篇—分布式缓存
  • c++端的类,作为组件在qml端使用
  • Android 14 适配之 - 全屏 intent 通知
  • 如何在 Vue 和 JavaScript 中截取视频任意帧图片
  • 代码随想录学习 day54 图论 Bellman_ford 队列优化算法(又名SPFA) 学习
  • 递归遍历树结构,前端传入一整颗树,后端处理这个树,包括生成树的id和pid等信息,
  • Nginx详解(超级详细)
  • postman使用旧版本报错version mismatch detected
  • 探索数据的隐藏维度:使用Scikit-Learn进行特征交互性预测
  • 首个WebAgent在线评测框架和流程数据管理平台来了,GPT-4、Qwen登顶闭源和开源榜首!
  • UE TSharedPtr
  • 基于X86+FPGA+AI的远程医疗系统,支持12/13代 Intel Core处理器
  • 微信小程序开发入门指南
  • 一个非常好的美图展示网站整站打包源码,集成了wordpress和开源版ripro主题,可以完美运营。