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