node.js|浏览器插件|Open-Multiple-URLs的部署和使用,实现一键打开多个URL的强大工具

前言:

在整理各类资源的时候,可能会面临资源非常多的情况,这个时候我们就需要一款能够一键打开多个URL的浏览器插件了

说简单点,其实,迅雷就是这样的,但是迅雷是基于内置nginx浏览器实现的,并且一次打开的数量是有限制的,好像是会员只能一次性打开50个URL

当然了,除了迅雷,其实其它各类资源都有各种各样的限制,这些无疑是极大的降低了我们的资料整理效率,而如果使用Open-Multiple-URLs这样的浏览器插件,将会很容易的突破每次打开URL数量的限制(不管有没有验证码这样的安全类措施,我就问是不是突破了多开URL的限制,虽然还有验证码等等需要去处理,但效率是不是已经有所提升?)

下面是Google浏览器使用Open-Multiple-URLs

输入框可以黏贴很多很多URL,当然前提是你的机器足够强悍,我的i713代cpu大概应该可以打开200多个URL,到底多少没有测算,不过和自身机器的cpu,内存是有关系这个是一定的

那么,如何安装这个插件呢?

下面将就这个问题做一个简单的描述

一、

Open-Multiple-URLs的源码下载

https://github.com/htrinter/Open-Multiple-URLs

这里需要注意,该项目是js项目,因此,源码编译需要node和npm(npm是node的包管理器,应该是类似python和pip的关系)

在github上面的项目主页上,显示编译需要node版本大于18,因此,该项目的源码编译是有一定的难度的,后面我将会讲到这个问题

二、

Open-Multiple-URLs编译环境的处理

前面提到了Open-Multiple-URLs的编译需要node版本大于18,而node安装yum并没有高于18版本的,因此,需要源码编译node,但这里是有一个巨大的坑的,那就是npm需要高版本的glibc库以及gcc库和高版本python环境,这个就非常困难了

因此,稍作总结,Open-Multiple-URLs编译需要高版本python,至少是3.6版本;高版本的glibc,至少2.23版本;高版本的gcc编译器,至少是gcc9

🆗,gcc9这个是最好处理的,只需要使用gcc的开发包就可以了,因此,安装devtoolset-9这个就可以了,rpm或者yum随便什么形式都可以,安装完devtoolset-9后,激活一下gcc的变量就可以了

python版本和node的对应关系大概是

python3.6-----node18---glibc2.17

python3.8-----node19---glibc2.23

python3.11----node22---glibc2.28

🆗,仅仅是编译一个Open-Multiple-URLs,因此,我选择python3.6-----node18---glibc2.17这个编译路线,python3.6可以使用yum安装,这个比较简单,yum源配置好就可以了

glibc也可以使用yum源,配置好相应的yum源安装就完事了,glibc选择使用2.17版本就可以了,当然也可以用高一点的,这个无所谓

要求glibc版本不低于2.22,但是不宜安装过高版本的glibc,因为较高版本的glibc依赖于python,去整python环境又得费一番功夫,所以弄个比2.22稍高一点的2.23版就够了

glibc下载地址:http://ftp.gnu.org/gnu/glibc/glibc-2.23.tar.gz

下载完毕后,将该文件上传到服务器并解压,解压后进入解压目录,执行以下命令开始编译,但编译前最好使用高版本的gcc,例如gcc9

[root@centos10 glibc-2.23]# mkdir build
[root@centos10 glibc-2.23]# cd build/
[root@centos10 build]# pwd
/root/glibc-2.23/build
 
 
 
 
../configure --prefix=/usr --disable-werror
make 
make install
@@@###最终编译成功的最后日志如下:
LD_SO=ld-linux-x86-64.so.2 CC="gcc" /usr/bin/perl scripts/test-installation.pl /root/glibc-2.23/build/
Your new glibc installation seems to be ok.
make[1]: Leaving directory `/root/glibc-2.23'
[root@centos10 build]# echo $?
0

中间有两个报错,第一个是这个报错(../configure --prefix=/usr --disable-werror的时候报的这个哦):

 Error: `loc1@GLIBC_2.2.5' can't be versioned to common symbol 'loc1'
 Error: `loc2@GLIBC_2.2.5' can't be versioned to common symbol 'loc2'
 Error: `locs@GLIBC_2.2.5' can't be versioned to common symbol 'locs'
解决方案为:

vim  ../misc/regexp.c
 
 
char *loc1 __attribute__ ((nocommon));
char *loc2 __attribute__ ((nocommon));
compat_symbol (libc, loc1, loc1, GLIBC_2_0);
compat_symbol (libc, loc2, loc2, GLIBC_2_0);
 
/* Although we do not support the use we define this variable as well.  */
char *locs __attribute__ ((nocommon));
 
 
loc1,loc2,locs 后面添加__attribute__ ((nocommon))
 第二个是make install的时候报错(等make这个命令 执行完了,在执行下面这个解决方案,如果不执行下面的解决方案就是下面这个错了!!!!~~~~~~~,make的时间比较长,耐心等待哦):

gawk '/\.gnu\.glibc-stub\./ { \
      sub(/\.gnu\.glibc-stub\./, "", $2); \
      stubs[$2] = 1; } \
    END { for (s in stubs) print "#define __stub_" s }' > /opt/glibc-2.23/build/math/stubsT
gawk: error while loading shared libraries: /lib64/libm.so.6: invalid ELF header
make[2]: *** [/opt/glibc-2.23/build/math/stubs] Error 127
解决方案为:

cd /lib64
 
###确认一下是否确实make出来了libm-2.23.so
[root@centos10 build]# ls -al /lib64/libm-2.23.so 
-rwxr-xr-x 1 root root 4218304 Feb 16 23:50 /lib64/libm-2.23.so
###绝对路径 强制链接
[root@centos10 build]# ln -sf /lib64/libm-2.23.so  /lib64/libm.so.6
最终编译成功,成功的日志末尾如下:

LD_SO=ld-linux-x86-64.so.2 CC="gcc" /usr/bin/perl scripts/test-installation.pl /root/glibc-2.23/build/
Your new glibc installation seems to be ok.
make[1]: Leaving directory `/root/glibc-2.23'
[root@centos10 build]# echo $?
0


 

等node和npm编译完成后,命令输出两者的版本,如果正常输出,表示环境准备完毕:

[root@centos1 Open-Multiple-URLs-develop]# npm -v
8.8.0
[root@centos1 Open-Multiple-URLs-develop]# node -v
v18.1.0

如果有任何报错,那么,表示编译不成功,需要找到原因,重新编译node 

假设打印node版本的时候。报错Error: /lib64/libstdc++.so.6: version `CXXABI_1.3.9‘ not found,这个时候,先把glibc高版本编译完成后,按如下解决:

更新libstdc++.so.6.0.26
依次执行以下命令,下载新lib库文件,拷贝到报错的目录,当前目录做强制链接wget https://cdn.frostbelt.cn/software/libstdc%2B%2B.so.6.0.26
cp libstdc++.so.6.0.26 /usr/lib64/
cd /usr/lib64/
ln -snf ./libstdc++.so.6.0.26 libstdc++.so.6

二、

Open-Multiple-URLs的编译

以上都准备好后,就非常简单了,把Open-Multiple-URLs的源码放到服务器上解压后,进入解压目录后

先将npm的源更换为国内的淘宝源,并稍作验证:

npm config set registry https://registry.npmmirror.com/

验证:

输出为淘宝源即可

[root@centos1 ~]# npm config get registry
https://registry.npmmirror.com/

开始编译:

npm run build:all

输出如下:

> open-multiple-urls@1.6.0 build:all
> npm run build:chrome && npm run build:firefox> open-multiple-urls@1.6.0 build:chrome
> export TARGET=chrome && run-p type-check "build {@}" --> open-multiple-urls@1.6.0 type-check
> vue-tsc --noEmit -p tsconfig.vitest.json --composite false> open-multiple-urls@1.6.0 build
> vite build --sourcemap truevite v4.5.2 building for production...
✓ 31 modules transformed.
dist-chrome/lazyloading.html                                0.56 kB │ gzip:  0.34 kB
dist-chrome/browseraction.html                              0.64 kB │ gzip:  0.37 kB
dist-chrome/assets/browseraction-c92649d4.css               0.91 kB │ gzip:  0.46 kB
dist-chrome/assets/LazyLoading-c0cd47d9.js                  0.86 kB │ gzip:  0.49 kB │ map:   1.33 kB
dist-chrome/assets/_plugin-vue_export-helper-8461c927.js    1.54 kB │ gzip:  0.65 kB │ map:   0.17 kB
dist-chrome/assets/BrowserAction-4e465abe.js               13.22 kB │ gzip:  3.20 kB │ map:  17.70 kB
dist-chrome/assets/vendor-e74b1f13.js                     178.56 kB │ gzip: 38.47 kB │ map: 511.31 kB
[vite-plugin-static-copy] Copied 4 items.
✓ built in 1.31s> open-multiple-urls@1.6.0 build:firefox
> export TARGET=firefox && run-p type-check "build {@}" --> open-multiple-urls@1.6.0 type-check
> vue-tsc --noEmit -p tsconfig.vitest.json --composite false> open-multiple-urls@1.6.0 build
> vite build --sourcemap truevite v4.5.2 building for production...
✓ 31 modules transformed.
dist-firefox/lazyloading.html                                0.56 kB │ gzip:  0.34 kB
dist-firefox/browseraction.html                              0.64 kB │ gzip:  0.37 kB
dist-firefox/assets/browseraction-c92649d4.css               0.91 kB │ gzip:  0.46 kB
dist-firefox/assets/LazyLoading-c0cd47d9.js                  0.86 kB │ gzip:  0.49 kB │ map:   1.33 kB
dist-firefox/assets/_plugin-vue_export-helper-8461c927.js    1.54 kB │ gzip:  0.65 kB │ map:   0.17 kB
dist-firefox/assets/BrowserAction-4e465abe.js               13.22 kB │ gzip:  3.20 kB │ map:  17.70 kB
dist-firefox/assets/vendor-e74b1f13.js                     178.56 kB │ gzip: 38.47 kB │ map: 511.31 kB
[vite-plugin-static-copy] Copied 4 items.
✓ built in 1.23s

此时,当前目录下会编译产出两个文件夹,这两个文件夹,一个是火狐的插件,一个是chrome谷歌的插件,谷歌的插件可以用于QQ浏览器这样的chrome内核类型的浏览器

[root@centos1 Open-Multiple-URLs-develop]# ls -alh dist-*
dist-chrome:
total 48K
drwxr-xr-x 3 root root  164 Jan  5 05:28 .
drwxr-xr-x 7 root root 4.0K Jan  5 03:16 ..
drwxr-xr-x 2 root root  326 Jan  5 05:28 assets
-rw-r--r-- 1 root root  639 Jan  5 05:28 browseraction.html
-rw-r--r-- 1 root root  14K Jan  5 05:28 icon128.png
-rw-r--r-- 1 root root 1.9K Jan  5 05:28 icon16.png
-rw-r--r-- 1 root root 2.0K Jan  5 05:28 icon19.png
-rw-r--r-- 1 root root 4.4K Jan  5 05:28 icon48.png
-rw-r--r-- 1 root root  557 Jan  5 05:28 lazyloading.html
-rw-r--r-- 1 root root  509 Jan  5 05:28 manifest.jsondist-firefox:
total 48K
drwxr-xr-x 3 root root  164 Jan  5 05:28 .
drwxr-xr-x 7 root root 4.0K Jan  5 03:16 ..
drwxr-xr-x 2 root root  326 Jan  5 05:28 assets
-rw-r--r-- 1 root root  639 Jan  5 05:28 browseraction.html
-rw-r--r-- 1 root root  14K Jan  5 05:28 icon128.png
-rw-r--r-- 1 root root 1.9K Jan  5 05:28 icon16.png
-rw-r--r-- 1 root root 2.0K Jan  5 05:28 icon19.png
-rw-r--r-- 1 root root 4.4K Jan  5 05:28 icon48.png
-rw-r--r-- 1 root root  557 Jan  5 05:28 lazyloading.html
-rw-r--r-- 1 root root  442 Jan  5 05:28 manifest.json

将以上两个文件夹传到服务器外,在Windows环境下就可以导入浏览器插件使用了

三、

浏览器插件的配置

查看浏览器版本

 找到浏览器的插件管理

必须进入开发者模式

 

现在就可以愉快的使用此插件了

附录:

本次编译所使用的源码包,主要包括Open-Multiple-URLs源码,node三个版本,glibc的两个版本,以及编译生成的可用的火狐和chrome浏览器插件,如果有不想编译的同学,自己取用!!!!

编译工作成功在centos7 x86_64服务器下通过!!!!!!!!!!

通过网盘分享的文件:浏览器插件Open-Multiple-URLs
链接: https://pan.baidu.com/s/1Z28J4Mbqf8ieaf25xVvQ-Q?pwd=nze4 提取码: nze4 
--来自百度网盘超级会员v6的分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/892086.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

“AI 视频图像识别系统,开启智能新视界

咱老百姓现在的生活啊,那是越来越离不开高科技了,就说这 AI 视频图像识别系统,听起来挺高大上,实际上已经悄无声息地融入到咱们日常的方方面面,给咱带来了超多便利。 先讲讲安防领域吧,这可是 AI 图像识别的…

C语言 游动的小球

代码如下&#xff1a; 在这里插入代码片#include<stdio.h> #include<stdlib.h> #include<windows.h>int main() {int i,j;int x 5;int y 10;int height 20;int velocity_x 1;int velocity_y 1;int left 0;int right 20;int top 0;int bottom 10;while(1){…

基于SpringBoot实现的保障性住房管理系统

&#x1f942;(❁◡❁)您的点赞&#x1f44d;➕评论&#x1f4dd;➕收藏⭐是作者创作的最大动力&#x1f91e; &#x1f496;&#x1f4d5;&#x1f389;&#x1f525; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;欢迎留言讨论 &#x1f525;&#x1f525;&…

安卓触摸对焦

1. 相机坐标说明 触摸对焦需要通过setFocusAreas()设置对焦区域&#xff0c;而该方法的参数的坐标&#xff0c;与屏幕坐标并不相同&#xff0c;需要做一个转换。 对Camera&#xff08;旧版相机API&#xff09;来说&#xff0c;相机的坐标区域是一个2000*2000&#xff0c;原点…

湖南引力:低代码技术助力军工企业实现设备管理系统创新

背景介绍 在核工业相关生产领域&#xff0c;随着技术的持续进步&#xff0c;生产活动对设备的依赖性日益增强。随着企业规模的不断扩大&#xff0c;所涉及的设备数量和种类也在急剧增长&#xff0c;这使得传统的设备管理模式逐渐显得力不从心。企业当前的设备管理主要依赖人工…

【701. 二叉搜索树中的插入操作 中等】

题目&#xff1a; 给定二叉搜索树&#xff08;BST&#xff09;的根节点 root 和要插入树中的值 value &#xff0c;将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 &#xff0c;新值和原始二叉搜索树中的任意节点值都不同。 注意&#xff0c;可能存在多…

VR+智慧消防一体化决策平台

随着科技的飞速发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术与智慧城市建设的结合越来越紧密。在消防安全领域&#xff0c;VR技术的应用不仅能够提升消防训练的效率和安全性&#xff0c;还能在智慧消防一体化决策平台中发挥重要作用。本文将探讨“VR智慧消防一体化…

nginx http反向代理

系统&#xff1a;Ubuntu_24.0.4 1、安装nginx sudo apt-get update sudo apt-get install nginx sudo systemctl start nginx 2、配置nginx.conf文件 /etc/nginx/nginx.conf&#xff0c;但可以在 /etc/nginx/sites-available/ 目录下创建一个新的配置文件&#xff0c;并在…

arcgisPro加载CGCS2000天地图后,如何转成米单位

1、导入加载的天地图影像服务&#xff0c;一开始是经纬度显示的。 2、右键地图&#xff0c;选择需要调整的投影坐标&#xff0c;这里选择坐标如下&#xff1a; 3、点击确定后&#xff0c;就可以调整成米单位的了。 4、切换后结果如下&#xff1a; 如有需要&#xff0c;可调整成…

计算机的错误计算(二百零四)

摘要 利用两个大模型判断&#xff1a;在(0, ) 范围内&#xff0c; 和 等价吗&#xff1f;实验表明&#xff0c;两个大模型&#xff08;其中一个是数学大模型&#xff09;均在输出幻觉&#xff0c;均说等价&#xff01; 例1. 在(0, ) 范围内&#xff0c; 和 等价吗&#xf…

简单的jmeter数据请求学习

简单的jmeter数据请求学习 1.需求 我们的流程服务由原来的workflow-server调用wfms进行了优化&#xff0c;将wfms服务操作并入了workflow-server中&#xff0c;去除了原来的webservice服务调用形式&#xff0c;增加了并发处理&#xff0c;现在想测试模拟一下&#xff0c;在一…

Unity3D仿星露谷物语开发17之空库存栏UI

1、目标 将库存栏放在游戏界面中&#xff0c;一般情况下角色居中展示时库存栏在底部&#xff0c;当角色位于界面下方时库存栏展示在顶部避免遮挡。 2、CanvasGroup组件 用于集中控制UI元素的透明度、交互性和射线投射行为。CanvasGroup的Alpha属性允许渐变效果&#xff0c;I…

现代谱估计的原理及MATLAB仿真(二)(AR模型法、MVDR法、MUSIC法)

现代谱估计的原理及MATLAB仿真AR参数模型法&#xff08;参数模型功率谱估计&#xff09;、MVDR法&#xff08;最小方差无失真响应法&#xff09;、MUSIC法&#xff08;多重信号分类法&#xff09; 文章目录 前言一、AR参数模型1 原理2 MATLAB仿真 二、MVDR法1 原理2 MATLAB仿真…

交换机划分Vlan配置

交换机划分Vlan配置 实验目标 理解虚拟LAN(VLAN)基本配置&#xff1b;掌握一般交换机按端口划分VLAN的配置方法&#xff1b;掌握Tag VLAN配置方法。 实验背景 某一公司内财务部、销售部的PC通过2台交换机实现通信&#xff1b;要求财务部和销售部的PC可以互通&#xff0c;但…

《Opencv》信用卡信息识别项目

目录 一、项目介绍 二、数据材料介绍 1、模板图片&#xff08;1张&#xff09; 2、需要处理的信用卡图片&#xff08;5张&#xff09; 三、实现过程 1、导入需要用到的库 2、设置命令行参数 3、模板图像中数字的定位处理 4、信用卡图像处理 5、模板匹配 四、总结 一…

.NET AI 开发人员库 --AI Dev Gallery简单示例--问答机器人

资源及介绍接上篇 nuget引用以下组件 效果展示&#xff1a; 内存和cpu占有&#xff1a; 代码如下&#xff1a;路径换成自己的模型路径 模型请从上篇文尾下载 internal class Program{private static CancellationTokenSource? cts;private static IChatClient? model;privat…

特种设备安全管理人员免费题库限时练习(判断题)

56.(判断题)特别重大事故、重大事故、较大事故和一般事故,负责事故调查的人民政府应当自收到事故调查报告之日起15日内做出批复。 A.正确 B.错误 答案:错误 57.(判断题)每一类事故灾难的应急救援措施可能千差万别,因此其基本应急模式是不一致的。 A.正确 B.错误 答案:错…

在Virtuoso中使用Clisoft SOS

在Virtuoso中使用Clisoft SOS 由于本人也是刚接触&#xff0c;后续用到其他的再进行更新&#xff0c;博客中可能有地方写的不好&#xff0c;欢迎大佬指点。 一、打开virtuoso 创建一个cds.lib&#xff08;不受SOS版本控制&#xff09; [bhlumaster /proj/trinity/work/cds/bh…

Android Audio基础(53)——PCM逻辑设备Write数据

1. 前言 本文,我们将以回放(Playback,播放音频)为例,讲解PCM Data是如何从用户空间到内核空间,最后传递到Codec。 在 ASoC音频框架简介中,我们给出了回放(Playback)PCM数据流示意图。: 对于Linux来说,由于分为 user space 和kernel space,而且两者之间数据不能随便…

算命网站源码PHP框架_附2025新版设计书教程

算命网站源码PHP设计书 1. 项目概述 1.1 项目背景 随着互联网的发展&#xff0c;越来越多的人对命理和占卜产生了兴趣。算命网站可以为用户提供个性化的命理分析、运势预测等服务。本项目旨在设计一个基于PHP的算命网站&#xff0c;方便用户在线获取命理服务。 1.2 项目目标…