查看原文
其他

批量提取一个网页内的所有链接并批量剪藏,堪称仓鼠症晚期患者利器

维客笔记 维客笔记 2023-06-25

欢迎点击上方蓝字⌈维客笔记⌋"关注并星标⭐,不错过每一篇推送!



大家好,我是来自1037号森林的BCS!


01 写在前面

  • 今天的推文,来自网友老K的投稿,非常感谢!
  • 我也根据自己的需要探索出了新的处理方案。
  • 也特别欢迎其他小伙伴来投稿哈~

你有没有下面这个需求:

每到年终或者一些特别的日子,许多公众号就会对自己已发表的推文做一个总结,也就是说,一篇推文中包含多篇推文链接,而且这些推文链接也都是公众号作者精选的推文。此时,你特别想将这些推文都剪藏进某些软件,比如cubox!

可是,cubox只能剪藏当篇推文的内容,没法将此篇推文中包含的链接都提取出来进行剪藏,想剪藏只能将网页内的所有链接都一一打开再剪藏,这无疑是一件很麻烦的事。

如果有方案能将一个网页内的所有链接批量提取出来,再批量导入cubox进行剪藏,岂不美哉!

今天的推文就是要解决这个事情的~

02 解决方案(来自老K)

方案步骤总览

本推文使用edge浏览器,以此网页为例:暂别&更新预告

很明显这个网页里包含了很多篇推文链接!

2.1 批量提取内部链接

  • 打开目标网页

  • 在网页右键弹出窗口中选择检查,然后依次点击下图中1,2,然后就能看到3和4

  • 在上图中的4处粘贴以下代码[1]
var x = document.querySelectorAll("a");
var myarray = []
for (var i=0; i<x.length; i++){
var nametext = x[i].textContent;
var cleantext = nametext.replace(/\s+/g, ' ').trim();
var cleanlink = x[i].href;
myarray.push([cleantext,cleanlink]);
};
function make_table() {
    var table = '<table><thead><th>Name</th><th>Links</th></thead><tbody>';
   for (var i=0; i<myarray.length; i++) {
            table += '<tr><td>'+ myarray[i][0] + '</td><td>'+myarray[i][1]+'</td></tr>';
    };
 
    var w = window.open("");
w.document.write(table); 
}
make_table()

  • 在粘贴代码之后,按回车键即可自动提取链接,得到下图

下图就相当于一个表格,一共包含两列,一列是网页名称,一列是网页链接

2.2 将链接保存到.csv文件

  • 全选复制上图中链接,然后粘贴到excel表格里,并清除无用的内容,保存为bookmark.csv
  • 用记事本打开bookmark.csv文件,并按快捷键ctrl+H(弹出替换框),按下图将,全部替换为;

2.3 csv文件转换为html文件

  • 将下面这一段代码保存为 bookmark.py,放在bookmarks.csv文件所在的文件夹里
import csv
 
_INPUT_FILENAME = "bookmarks.csv"
_OUTPUT_FILENAME = "bookmarks.html"
 
fout = open(_OUTPUT_FILENAME, 'w',encoding='utf-8')
csvfile = open(_INPUT_FILENAME, 'rt',encoding='utf-8')
 
# Write the header
fout.write("""<!DOCTYPE NETSCAPE-Bookmark-file-1>
<!-- This is an automatically generated file.
     It will be read and overwritten.
     DO NOT EDIT! -->
<META HTTP-EQUIV="
Content-Type" CONTENT="text/html; charset=UTF-8">
<TITLE>Bookmarks</TITLE>
<H1>Bookmarks</H1>
<DL><p>\n"
"")
 
csvreader = csv.reader(csvfile, delimiter=';', quotechar='"')
for row in csvreader:
    fout.write('\t<DT><A HREF="')
    fout.write(row[1])
    fout.write('">')
    fout.write(row[0])
    fout.write('</A>\n')
 
fout.write('</DL><p>\n')
 
fout.close()
csvfile.close();
  • 运行cmd,python bookmark.py,即可生成了可以导入浏览器或者cubox的bookmark.html

有了这个html文件,你就可以批量导入cubox进行批量剪藏了,仓鼠症晚期患者利器!

03 我的方案

看过我历史推文的小伙伴应该都清楚,我几乎不提供任何需要代码才能解决问题的方案!

而且本公众号的slogan是致力于探索解决问题的极简方式!

这必须得探索出更适合本人胃口的解决方案啊~

既然是对网页的处理(单个网页内链接的提取),浏览器插件是必须要考虑的。

最开始找到了如下插件

但是,以上这些插件也只能完成链接的提取,没法完成链接的转换,依然十分麻烦~

很显然是不合格的方案。

可是,就在昨天我以插件找插件,遇到了另一个神器插件,名曰智能超链接复制(获取方式见文末

它能做什么,竟然可以称之为神器,咱们来用图说话

当点击上图中的复制页面链接,奇迹出现,看到了下图,原来可以有如此简单的方案,一键的事情,完全不需要任何代码!

可以直接添加到书签(会添加到其它收藏夹),也可以直接导出为满足条件的html文件,当然还有其它操作,十分简单,就不细说了。

同样的导出为html文件之后,可以直接导入cubox中进行批量剪藏!

04 写在最后

  • 还是非常感谢老K提供这个idea
  • 特别欢迎各位小伙伴来稿或者来找我探讨(不是问问题那种探讨哈,如果是有问题需要解决方案,请走咨询(公众号聊天界面右下角))

智能超链接复制插件获取方式:请关注维客笔记微信公众号,在公众号后台聊天窗口回复20230414

参考资料

[1]

链接批量提取代码: https://towardsdatascience.com/quickly-extract-all-links-from-a-web-page-using-javascript-and-the-browser-console-49bb6f48127b。




您的每一次在看/赞赏/分享,都是我前行的动力😋



A better you, A bigger world!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存