只有光头才能变强html
以前有读者问过我:“3y你的博客有没有电子版的呀?我想要份电子版的”。我说:“没有啊,我没有弄过电子版的,我这边有个文章导航页面,你能够去文章导航去找来看呀”..而后就没有而后了。python
最近也有个读者提过这个问题,而后这两天也没什么事作,因此打算折腾折腾,看看怎么把博客转成PDF。git
要将博客转成PDF,我首先想到的是能不能将markdown文件转成PDF(由于平时我就是用markdown来写博客的)。github
因而就去想一下,可不能够将HTML转成PDF呢。就去GitHub搜了有没有相关的轮子,也搜到了一些关于Python的爬虫啥的,感受仍是蛮复杂的。web
后来,终于搜到了个不错的:markdown
**介绍:**收集一系列html转文档的开源插件,作成html页面转文件的微服务集成Web应用,目前包含 html转PDF、html转图片、html转markdown等等。机器学习
功能:微服务
这里我主要用到的网页转PDF这么一个功能,对应的插件是wkhtml2pdf。post
发现了一个不错的轮子了,感受可行,因而就去下载来跑一下看看怎么样。启动的时候倒没有出错,但在调接口的时候,总是抛出异常。学习
后来才发现个人wkhtml2pdf.exe
文件打不开,说我缺乏几个dll文件。因而,我首先想到的是去wkhtml2pdf官网看看有没有相关的问题,想从新下载一个,但官网都进不去...(不是墙的问题)
好吧,因而就去找‘dll文件缺失怎么办’。后面发现,安装一下Visual C++ Redistributable for Visual Studio 2015
就行了(没有网上说得那么复杂)
完了以后,发现能够将一个HTML转成PDF了,效果还不错:
缺点:
原本想着能不能只截取HTML博文的部分啊(评论,广告和其余不相关的不截取)。因而就去搜了一下,感受是挺麻烦的,本身作了几回试验都没弄出来,最后放弃了。
后来又想了一下,我不是有一个没有广告的博客平台吗,恰好能够拿来用了。可是,我本身写完的markdown是没有所有保存在硬盘上的,后来发现简书能够下载已发布文章的全部markdown。
下载下来的文章,我想所有导入到以前那个无广告的博客平台上。但发现导出来的markdown没有高亮语法..
// 没有语法高亮咋看啊,因此到这里我就放弃了,将就用一下博客园生成的PDF吧
上面GitHub提供的接口是一个URL生成一个PDF文件,我是不可能一个一个将连接和标题放上去生成的(由于博客园上发的也将近200篇了)。
而我是一点也不会爬虫的,因而也去搜了一下Java的爬虫轮子,发现一个很出名(WebMagic)
因而就跟着文档学习,也遇到了坑...文档给出的版本是0.7.3
,我使用的JDK版本是8
,用它的例子跑的时候抛出了SSLException
异常(然而网上的0.6.x
版本是没有问题的)
折腾完折腾去,也找到了0.7.3
版本在JDK8上如何解决SSLException
异常的办法了:
修改HttpClientDownloader和HttpClientGenerator这两个类的部分代码就行了。
可是,我仍是死活写不出能用的代码出来(真的菜!)..后来去问了一下同事(公众号:Rude3Knife)咋搞,他用Python几分钟就写好了。
def get_blog_yuan(blog_name, header):
for i in range(1, 6):
url = 'https://www.cnblogs.com/' + blog_name + '/default.html?page=' + str(i)
r = requests.get(url, headers=header, timeout=6)
selector = etree.HTML(r.text)
names = selector.xpath("//*[@class='postTitle']/a/text()")
links = selector.xpath("//*[@class='postTitle']/a/@href")
for num in range(len(names)):
print(names[num], links[num])
time.sleep(5)
复制代码
我也不纠结了..直接用他爬下来的数据吧(:
WebMagic中文文档:
最后我就生成了好多PDF文件了:
// 这篇文章简单记录下我这个过程吧,还有不少要改善的[//伪装TODO]。若是你遇到过这种需求,有更好的办法的话不妨在评论区下告诉我~~
WebMagic个人Demo还没写好!!!若是有兴趣或者用过WebMagic的同窗,有空的话不妨也去爬爬个人博客园的文章,给我一份代码(hhhhh)
分析可能的缘由:博客园反爬虫or爬取规则没写好
部门的前辈建议我去了解一下机器学习,我也想扩展一下眼界,因此这阵子会去学一下简单的机器学习知识。(固然啦,我后面也会补笔记的)
乐于分享和输出干货的Java技术公众号:Java3y。关注便可领取海量的视频资源!
文章的目录导航: