批量提取一个网页内的所有链接并批量剪藏,堪称仓鼠症晚期患者利器
欢迎点击上方蓝字⌈维客笔记⌋"关注并星标⭐,不错过每一篇推送!
大家好,我是来自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 特别欢迎各位小伙伴来稿或者来找我探讨(不是问问题那种探讨哈,如果是有问题需要解决方案,请走咨询(公众号聊天界面右下角))
参考资料
链接批量提取代码: https://towardsdatascience.com/quickly-extract-all-links-from-a-web-page-using-javascript-and-the-browser-console-49bb6f48127b。
您的每一次在看/赞赏/分享,都是我前行的动力😋
A better you, A bigger world!