成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

我是如何將博客轉(zhuǎn)成PDF的

mindwind / 867人閱讀

摘要:但發(fā)現(xiàn)導(dǎo)出來的沒有高亮語法沒有語法高亮咋看啊,所以到這里我就放棄了,將就用一下博客園生成的吧爬蟲學(xué)習(xí)上面提供的接口是一個生成一個文件,我是不可能一個一個將鏈接和標(biāo)題放上去生成的因?yàn)椴┛蛨@上發(fā)的也將近篇了。

前言
只有光頭才能變強(qiáng)

之前有讀者問過我:“3y你的博客有沒有電子版的呀?我想要份電子版的”。我說:“沒有啊,我沒有弄過電子版的,我這邊有個文章導(dǎo)航頁面,你可以去文章導(dǎo)航去找來看呀”..然后就沒有然后了。

最近也有個讀者提過這個問題,然后這兩天也沒什么事做,所以打算折騰折騰,看看怎么把博客轉(zhuǎn)成PDF。

一、準(zhǔn)備工作

要將博客轉(zhuǎn)成PDF,我首先想到的是能不能將markdown文件轉(zhuǎn)成PDF(因?yàn)槠綍r我就是用markdown來寫博客的)。

想了一下,原生markdown顯示的話,代碼是沒有高亮的,格式也不會太好看。

所以就放棄了這個想法。

于是就去想一下,可不可以將HTML轉(zhuǎn)成PDF呢。就去GitHub搜了有沒有相關(guān)的輪子,也搜到了一些關(guān)于Python的爬蟲啥的,感覺還是蠻復(fù)雜的。

后來,終于搜到了個不錯的:

https://github.com/petterobam/my-html2file

介紹:收集一系列html轉(zhuǎn)文檔的開源插件,做成html頁面轉(zhuǎn)文件的微服務(wù)集成Web應(yīng)用,目前包含 html轉(zhuǎn)PDF、html轉(zhuǎn)圖片、html轉(zhuǎn)markdown等等。

功能:

網(wǎng)頁轉(zhuǎn)PDF(參用wkhtml2pdf插件)

網(wǎng)頁轉(zhuǎn)圖片(參用wkhtml2pdf插件)

網(wǎng)頁轉(zhuǎn)Markdown(參用jHTML2Md)

網(wǎng)頁轉(zhuǎn)WORD(參用Apache POI)

這里我主要用到的網(wǎng)頁轉(zhuǎn)PDF這么一個功能,對應(yīng)的插件是wkhtml2pdf。

1.1踩坑

發(fā)現(xiàn)了一個不錯的輪子了,感覺可行,于是就去下載來跑一下看看怎么樣。啟動的時候倒沒有出錯,但在調(diào)接口的時候,老是拋出異常。

于是就開始查一下路徑,url有沒有問題啦,查來查去發(fā)現(xiàn)都沒問題啊。

后來才發(fā)現(xiàn)我的wkhtml2pdf.exe文件打不開,說我缺少幾個dll文件。于是,我首先想到的是去wkhtml2pdf官網(wǎng)看看有沒有相關(guān)的問題,想重新下載一個,但官網(wǎng)都進(jìn)不去...(不是墻的問題)

https://wkhtmltopdf.org/

(ps:一個周末過去了,發(fā)現(xiàn)又能打開了。)

好吧,于是就去找‘dll文件缺失怎么辦’。后面發(fā)現(xiàn),安裝一下Visual C++ Redistributable for Visual Studio 2015就好了(沒有網(wǎng)上說得那么復(fù)雜)

https://www.microsoft.com/zh-cn/download/confirmation.aspx?id=48145

完了之后,發(fā)現(xiàn)可以將一個HTML轉(zhuǎn)成PDF了,效果還不錯

有目錄

可復(fù)制粘貼

可跳轉(zhuǎn)到鏈接

清晰度好評

缺點(diǎn):

頁面加載速度慢的HTML,圖片還沒加載出來就已經(jīng)生成PDF了

所以我選用了博客園(速度快)

在PDF的末尾有好幾頁不相關(guān)的(評論,廣告啥的)

本來想著能不能只截取HTML博文的部分啊(評論,廣告和其他不相關(guān)的不截取)。于是就去搜了一下,感覺是挺麻煩的,自己做了幾次試驗(yàn)都沒弄出來,最后放棄了。

后來又想了一下,我不是有一個沒有廣告的博客平臺嗎,剛好可以拿來用了。但是,我自己寫完的markdown是沒有全部保存在硬盤上的,后來發(fā)現(xiàn)簡書可以下載已發(fā)布文章的所有markdown。

下載下來的文章,我想全部導(dǎo)入到之前那個無廣告的博客平臺上。但發(fā)現(xiàn)導(dǎo)出來的markdown沒有高亮語法..

// 沒有語法高亮咋看啊,所以到這里我就放棄了,將就用一下博客園生成的PDF吧

1.2爬蟲學(xué)習(xí)

上面GitHub提供的接口是一個URL生成一個PDF文件,我是不可能一個一個將鏈接和標(biāo)題放上去生成的(因?yàn)椴┛蛨@上發(fā)的也將近200篇了)。

而我是一點(diǎn)也不會爬蟲的,于是也去搜了一下Java的爬蟲輪子,發(fā)現(xiàn)一個很出名(WebMagic)

https://github.com/code4craft/webmagic

于是就跟著文檔學(xué)習(xí),也遇到了坑...文檔給出的版本是0.7.3,我使用的JDK版本是8,用它的例子跑的時候拋出了SSLException異常(然而網(wǎng)上的0.6.x版本是沒有問題的)

折騰完折騰去,也找到了0.7.3版本在JDK8上如何解決SSLException異常的辦法了:

http://www.cnblogs.com/vcmq/p/9484418.html

修改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("http://*[@class="postTitle"]/a/text()")
        links = selector.xpath("http://*[@class="postTitle"]/a/@href")
        for num in range(len(names)):
            print(names[num], links[num])
        time.sleep(5)

我也不糾結(jié)了..直接用他爬下來的數(shù)據(jù)吧(:

WebMagic中文文檔:

http://webmagic.io/docs/zh/

最后

最后我就生成了好多PDF文件了:

// 這篇文章簡單記錄下我這個過程吧,還有很多要改善的[//假裝TODO]。如果你遇到過這種需求,有更好的辦法的話不妨在評論區(qū)下告訴我~~

WebMagic我的Demo還沒寫好?。。∪绻信d趣或者用過WebMagic的同學(xué),有空的話不妨也去爬爬我的博客園的文章,給我一份代碼(hhhhh)

分析可能的原因:博客園反爬蟲or爬取規(guī)則沒寫好

部門的前輩建議我去了解一下機(jī)器學(xué)習(xí),我也想擴(kuò)展一下眼界,所以這陣子會去學(xué)一下簡單的機(jī)器學(xué)習(xí)知識。(當(dāng)然啦,我后面也會補(bǔ)筆記的)

樂于分享和輸出干貨的Java技術(shù)公眾號:Java3y。關(guān)注即可領(lǐng)取海量的視頻資源!

文章的目錄導(dǎo)航

https://github.com/ZhongFuCheng3y/3y

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/72652.html

相關(guān)文章

  • 前端實(shí)現(xiàn)html轉(zhuǎn)pdf方法總結(jié)

    摘要:比上面的稍微好點(diǎn),支持了一些方面的東西,具體看這個中文配置參數(shù)評價這種方法前端實(shí)現(xiàn),靈活簡單,而且在頁面還原上是很好的,生成的過程不需要自己操心,頁面樣式還可控,可以說是非常不錯的。 最近要搞前端html轉(zhuǎn)pdf的功能。折騰了兩天,略有所收,踩了一些坑,所以做些記錄,為后來的兄弟做些提示,也算是回饋社區(qū)。經(jīng)過一番調(diào)(sou)研(suo)發(fā)現(xiàn)html導(dǎo)出pdf一般有這幾種方式,各有各有優(yōu)...

    Heier 評論0 收藏0
  • 前端實(shí)現(xiàn)html轉(zhuǎn)pdf方法總結(jié)

    摘要:比上面的稍微好點(diǎn),支持了一些方面的東西,具體看這個中文配置參數(shù)評價這種方法前端實(shí)現(xiàn),靈活簡單,而且在頁面還原上是很好的,生成的過程不需要自己操心,頁面樣式還可控,可以說是非常不錯的。 最近要搞前端html轉(zhuǎn)pdf的功能。折騰了兩天,略有所收,踩了一些坑,所以做些記錄,為后來的兄弟做些提示,也算是回饋社區(qū)。經(jīng)過一番調(diào)(sou)研(suo)發(fā)現(xiàn)html導(dǎo)出pdf一般有這幾種方式,各有各有優(yōu)...

    gekylin 評論0 收藏0
  • 前端實(shí)現(xiàn)html轉(zhuǎn)pdf方法總結(jié)

    摘要:比上面的稍微好點(diǎn),支持了一些方面的東西,具體看這個中文配置參數(shù)評價這種方法前端實(shí)現(xiàn),靈活簡單,而且在頁面還原上是很好的,生成的過程不需要自己操心,頁面樣式還可控,可以說是非常不錯的。 最近要搞前端html轉(zhuǎn)pdf的功能。折騰了兩天,略有所收,踩了一些坑,所以做些記錄,為后來的兄弟做些提示,也算是回饋社區(qū)。經(jīng)過一番調(diào)(sou)研(suo)發(fā)現(xiàn)html導(dǎo)出pdf一般有這幾種方式,各有各有優(yōu)...

    yvonne 評論0 收藏0
  • React-pdf-js插件使用與base64顯示圖片與文件

    摘要:由于公司項(xiàng)目需要,圖片與文件需要存到數(shù)據(jù)庫而存本地,前端用的,后端是接口的方式,只能選擇這種方式,而且也方便可以存各種格式。下安裝官網(wǎng)大家可以點(diǎn)進(jìn)去,然后里面有介紹安裝方法如何使用。 由于公司項(xiàng)目需要,圖片與文件需要存到數(shù)據(jù)庫而存本地,前端用的react,后端 是接口的方式,只能選擇base64這種方式,而且也方便可以存各種格式。 1.React下react-pdf-js安裝官網(wǎng) 大家...

    Alfred 評論0 收藏0
  • Javascript html轉(zhuǎn)成pdf,下載,支持多頁哦(html2canvas 和 jsPDF

    摘要:最近碰到個需求,需要把當(dāng)前頁面生成,并下載。但這并不是真的截圖,而是通過遍歷頁面結(jié)構(gòu),收集所有元素信息及相應(yīng)樣式,渲染出。由于只能將它能處理的生成,因此渲染出來的結(jié)果并不是與原來一致。 最近碰到個需求,需要把當(dāng)前頁面生成pdf,并下載。弄了幾天,自己整理整理,記錄下來,我覺得應(yīng)該會有人需要 :) 項(xiàng)目源碼地址:https://github.com/linwalker/... html2...

    macg0406 評論0 收藏0

發(fā)表評論

0條評論

mindwind

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<