不过是为了完成所需而已学习罢了———js初步
一直想把知乎的收藏夹里面的内容导入Kindle后阅读,毕竟也不能浪费Kindle电子墨水啊,电脑屏幕实在是太伤眼了/摊手
之前在知乎上用了一下如何保存某位知乎用户的所有答案?里面的软件,并不好用,图片会缺失,这让没有强迫症的我也有点蛋疼,没图看个屁啊!!!/摔
最近实在有点闲,(其实事情挺多但是,拖延症啊啊。。)在知友的启示下,发现js也可以用来做这件事情,把网页转为简单的html,然后通过Calibre转为epub、mobi 等格式放在Kindle上阅读,效果还不错。
javascript: void((function() {
$(".zu-edit-button").remove();
var list = $(".zm-editable-content");
var k, strs = [];
document.write("<h3>" + document.title.substr(0, document.title.length - 4) + "</h3>");
for (k = 1; k < list.length; k++) {
if ("" == list[k].innerHTML) continue;
document.write(list[k].innerHTML + "<hr />");
}
})())
这里面对于我这种新手来说还是很有意义的,$符号其实是一个function,jQuery的工厂函数,比如$(".zu-edit-button").remove();
也等于jQuery(".zu-edit-button").remove();
知友的这个是针对单个知乎问题写的,也只能在问题的页面用,比如这个整年都在旅行的人,经济来源是什么?
当然这是满足不了我的,毕竟收藏夹才是真谛啊!!
可是我们发现收藏夹里是有个 "显示全部" ,当然只需要找出链接点击就行
javascript: void((function() {
var exp = document.getElementsByClassName('zh-summary summary clearfix');
for (var i in exp) {
exp[i].click();
}
})())
其实这里是点击一片区域而不是那个链接,为什么不直接点击呢?因为。。。
之后只要找到回答部分,利用js剥离出来就行了
javascript: void((function() {
titletemp = $("#zh-fav-head-title")[0].innerText + $('div.zm-invite-pager span.zg-gray-normal').eq(-1)[0].innerText + ' - %E7%9F%A5%E4%B9%8E';
var list = $('.zm-item-rich-text.expandable.js-collapse-body');
title = $('H2.zm-item-title:not(.zm-editable-content)');
var k, strs = [];
for (k = 0; k < list.length; k++) {
if ("" == list[k].firstElementChild.innerHTML) continue;
document.write("<h2>" + title[k].innerText + "</h2>" + list[k].firstElementChild.innerHTML + "<hr />")
}
document.title = titletemp;
})())
目前为止,一个简洁的html出世了
效果对比图
之前
转换完之后就可以通过Calibre转换了,效果还不错,也不会缺图
优点:简单,简单,很简单
缺点:总感觉很蠢的样子,只能一个个转换
最后当然你要把他们放到收藏夹方便使用
网友评论