摘要:制作電子書準(zhǔn)備制作電子書使用的是的這個(gè)庫,是的封裝包,因此在安裝這個(gè)之前要安裝安裝下,不過這里安裝的時(shí)候可能對(duì)應(yīng)的版本不同,會(huì)出現(xiàn)錯(cuò)誤,如果不行的話還請(qǐng)自己百度下,我安裝的時(shí)候是可以的下的用戶直接到官網(wǎng)下載穩(wěn)定版本,然后直接安裝即可,但是
python制作pdf電子書 準(zhǔn)備
安裝wkhtmltopdf制作電子書使用的是python的pdfkit這個(gè)庫,pdfkit是 wkhtmltopdf 的Python封裝包,因此在安裝這個(gè)之前要安裝wkhtmltopdf
python安裝依賴包sudo apt-get install wkhtmltopdf (ubantu下,不過這里安裝的時(shí)候可能對(duì)應(yīng)的版本不同,會(huì)出現(xiàn)錯(cuò)誤,如果不行的話還請(qǐng)自己百度下,我安裝的時(shí)候是可以的)
windows下的用戶直接到wkhtmltopdf官網(wǎng)下載穩(wěn)定版本,然后直接安裝即可,但是安裝之后需要注意的是一定要將其添加到環(huán)境變量中,否則會(huì)出現(xiàn)找不到路徑的問題
pdfkit的用法 初級(jí)了解函數(shù)以下都是我們需要用到的庫
pip install requests
pip install BeautifulSoup4
pip install pdfkit
進(jìn)階pdfkit.from_url([url,],"demo.pdf") 這個(gè)是直接傳入一個(gè)url或者一個(gè)url列表,然后通過這個(gè)函數(shù)直接將其網(wǎng)頁轉(zhuǎn)換成demo.pdf,注意這里只能轉(zhuǎn)換靜態(tài)文本,如果使用js一些腳本的話是不能直接轉(zhuǎn)換的
pdfkit.from_string("
這個(gè)是直接講一個(gè)字符串轉(zhuǎn)換成pdf格式的電子書,里面可以直接傳一個(gè)字符串,也可以用html標(biāo)簽包裹這個(gè)字符串
pdfkit.from_file([file_name,],"demo.pdf") 這個(gè)是直接傳入一個(gè)文件或者一個(gè)列表即是多個(gè)文件,不過這里傳入的文件一般都是html格式的文件
options當(dāng)然知道這個(gè)是多么枯燥,生成的電子書書也不能添加各種的樣式,下面我們將會(huì)介紹一些添加的樣式的方法
這個(gè)參數(shù)是上面函數(shù)的可選參數(shù),其中制定了一些選項(xiàng),詳情請(qǐng)見http://wkhtmltopdf.org/usage/wkhtmltopdf.txt, 你可以移除選項(xiàng)名字前面的 "--" .如果選項(xiàng)沒有值, 使用None, Falseor ,* 作為字典值,例子如下:
options = { "page-size": "Letter", "margin-top": "0.75in", "margin-right": "0.75in", "margin-bottom": "0.75in", "margin-left": "0.75in", "encoding": "UTF-8", "custom-header": [ ("Accept-Encoding", "gzip") ], "cookie": [ ("cookie-name1", "cookie-value1"), ("cookie-name2", "cookie-value2"), ], "outline-depth": 10, }cover
這個(gè)參數(shù)是用來制作封面的,也是函數(shù)中的一個(gè)參數(shù),如果想要實(shí)現(xiàn)的話可以先寫一個(gè)html文本,在其中嵌入幾張圖片或者文字作為封面,然后寫入出傳入函數(shù)即可
options = { "page-size": "Letter", "margin-top": "0.75in", "margin-right": "0.75in", "margin-bottom": "0.75in", "margin-left": "0.75in", "encoding": "UTF-8", "custom-header": [ ("Accept-Encoding", "gzip") ], "cookie": [ ("cookie-name1", "cookie-value1"), ("cookie-name2", "cookie-value2"), ], "outline-depth": 10, } cover="demo.html" pdfkit.from_file("demo.html","demo.pdf",cover=cover,options=options)css
這里的css也是函數(shù)中的一個(gè)可選參數(shù),這個(gè)參數(shù)主要的作用作用就是在其中定義自己喜歡的樣式,當(dāng)然這里也可以傳入一個(gè)列表,定義多個(gè)樣式css文件,當(dāng)然沒有這個(gè)參數(shù)也可以實(shí)現(xiàn)定義自己的樣式,只需要在自己的html模板中定義內(nèi)嵌的樣式,或者直接用引用外面的樣式即可,本人親試是可以的,具體的使用如下
css="demo.css" pdfkit.from_file("demo.html","demo.pdf",options=options,cover=cover,css=css)注意
這里生成pdf的時(shí)候可能出現(xiàn)中文的亂碼,請(qǐng)一定在html模板開頭指定字體utf-8->
可能在爬取生成的時(shí)候會(huì)出現(xiàn)ascii錯(cuò)誤,只需要在py文件開頭寫下:
import sys import threading reload(sys) sys.setdefaultencoding("utf8")
實(shí)戰(zhàn)寫入文件的時(shí)候不想python3一樣可以指定編碼格式,這里我使用的是codecs庫,可以向python3一樣指定其中的編碼格式
注意本人爬了廖雪峰老師的python2.7的教程,并且做成了電子書,截圖如下
參考文章這里并沒有使用框架,如果有興趣的朋友可以用框架寫一個(gè)爬取全站的
這里的主要用到的是BeautifulSoup和requests,詳情可以看我的博客中的BeautifulSoup用法,后續(xù)還會(huì)更新requests的用法
源代碼請(qǐng)見https://github.com/chenjiabing666/liaoxuefeng_pdfkit
更多文章請(qǐng)移步本人博客https://chenjiabing666.github.io/http://mp.weixin.qq.com/s/LH8nEFfVH4_tvYWo46CF5Q
http://www.cnblogs.com/taceywong/p/5643978.html
http://beautifulsoup.readthedocs.io/zh_CN/latest/#id44
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/44366.html
摘要:是一個(gè)基于的命令行工具,可使用和來制作精美的電子書,并非關(guān)于的教程。使用制作電子書,必備兩個(gè)文件和。今天,我就教大家如何使用快速制作應(yīng)用,該應(yīng)用是基于鏡像制作,可以隨意運(yùn)行在任何一個(gè)安裝有的主機(jī)上。首先安裝安裝完成后,地址欄輸入即可訪問。 GitBook 是一個(gè)基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 來制作精美的電子書,GitBook 并...
摘要:其頁面如下那么我們是否可以通過來制作爬蟲來幫助我們實(shí)現(xiàn)自動(dòng)下載這些電子書呢答案是筆者在空閑時(shí)間寫了一個(gè)爬蟲,主要利用函數(shù)和多線程來下載這些電子書。 ??近段時(shí)間,筆者發(fā)現(xiàn)一個(gè)神奇的網(wǎng)站:http://www.allitebooks.com/ ,該網(wǎng)站提供了大量免費(fèi)的編程方面的電子書,是技術(shù)愛好者們的福音。其頁面如下: showImg(https://segmentfault.com/i...
摘要:基于轉(zhuǎn)換的電子書閱讀插件部分項(xiàng)目一般都是以插件閱讀文件,但存在閱讀體驗(yàn)不理想的情況,所以參考手機(jī)上的電子書閱讀器,使用國外的鏈接描述制作電子書示例。 基于HTML5轉(zhuǎn)換PDF的電子書閱讀插件 html5部分 項(xiàng)目一般都是以pdf.js插件閱讀PDF文件,但存在閱讀體驗(yàn)不理想的情況,所以參考手機(jī)上的電子書閱讀器,使用國外的鏈接描述http://fliphtml5.com制作電子書示例。...
摘要:在知乎上,你一定關(guān)注了一些不錯(cuò)的專欄比如的編程教室。有需要的請(qǐng)?jiān)诠娞?hào)里回復(fù)爬蟲實(shí)戰(zhàn)源碼下載獲取知乎專欄下載器源碼,請(qǐng)?jiān)诠娞?hào)的編程教室里回復(fù)關(guān)鍵字知乎除了代碼外,本專欄打包好的也一并奉上,歡迎閱讀與分享。 老是有同學(xué)問,學(xué)了 Python 基礎(chǔ)后不知道可以做點(diǎn)什么來提高。今天就再用個(gè)小例子,給大家講講,通過 Python 和 爬蟲 ,可以完成怎樣的小工具。 在知乎上,你一定關(guān)注了...
閱讀 2822·2021-11-24 09:39
閱讀 3393·2021-11-19 09:40
閱讀 2263·2021-11-17 09:33
閱讀 3753·2021-10-08 10:04
閱讀 3043·2021-09-26 09:55
閱讀 1668·2021-09-22 15:26
閱讀 931·2021-09-10 10:51
閱讀 3130·2019-08-30 15:44