從Safari Books Online圖書館下載並產生您最喜歡的書籍的EPUB 。
我不對該程序的使用負責,這僅用於個人和教育目的。
在任何使用之前,請閱讀O'Reilly的服務條款。
safaribooks
登入不再有效。cookies.json
中,請參閱下文和問題。愛❤️) --kindle
選項首先,它需要安裝python3
和pip3
或pipenv
。
$ git clone https://github.com/lorenzodifuccia/safaribooks.git
Cloning into ' safaribooks ' ...
$ cd safaribooks/
$ pip3 install -r requirements.txt
OR
$ pipenv install && pipenv shell
該程式僅依賴兩個Python 3模組:
lxml >= 4.1 . 1
requests >= 2.20 . 0
使用起來非常簡單,只需從圖書館中選擇一本書並替換為以下命令:
email:password
為您自己的。 $ python3 safaribooks.py --cred " [email protected]:password01 " XXXXXXXXXXXXX
ID 是您在圖書描述頁面的 URL 中找到的數字:
https://www.safaribooksonline.com/library/view/book-name/XXXXXXXXXXXXX/
像是: https://www.safaribooksonline.com/library/view/test-driven-development-with/9781491958698/
$ python3 safaribooks.py --help
usage: safaribooks.py [--cred < EMAIL:PASS > | --login] [--no-cookies]
[--kindle] [--preserve-log] [--help]
< BOOK ID >
Download and generate an EPUB of your favorite books from Safari Books Online.
positional arguments:
< BOOK ID > Book digits ID that you want to download. You can find
it in the URL (X-es):
` https://learning.oreilly.com/library/view/book-
name/XXXXXXXXXXXXX/ `
optional arguments:
--cred < EMAIL:PASS > Credentials used to perform the auth login on Safari
Books Online. Es. ` --cred
" [email protected]:password01 " ` .
--login Prompt for credentials used to perform the auth login
on Safari Books Online.
--no-cookies Prevent your session data to be saved into
` cookies.json ` file.
--kindle Add some CSS rules that block overflow on ` table ` and
` pre ` elements. Use this option if you ' re going to
export the EPUB to E-Readers like Amazon Kindle.
--preserve-log Leave the `info_XXXXXXXXXXXXX.log` file even if there
isn ' t any error.
--help Show this help message.
第一次使用程式時,您必須指定您的 Safari Books Online 帳戶憑證(請here
尋找特殊字元)。
下次下載書籍時,在會話過期之前,您可以省略憑證,因為程式會將您的會話 cookie 保存在名為cookies.json
的檔案中。
對於SSO ,請使用sso_cookies.py
程序,以便根據瀏覽器會話檢索的 SSO cookie 建立cookies.json
檔案(請按照these steps
操作)。
如果您使用共用電腦,請注意,因為有權存取您檔案的每個人都可以竊取您的會話。如果您不想快取 cookie,只需使用--no-cookies
選項,並透過--cred
選項或更安全的--login
選項始終提供您的憑證:這將在腳本流程中提示您輸入憑證執行。
您可以透過在系統上設定環境變數HTTPS_PROXY
或在腳本中使用USE_PROXY
指令來設定代理程式。
重要提示:由於腳本僅下載 HTML 頁面並建立原始 EPUB,因此許多 CSS 和 XML/HTML 指令對於電子閱讀器來說都是錯誤的。為了確保最佳的輸出質量,我建議您始終使用 Calibre 將腳本獲得的EPUB
轉換為標準EPUB
。您也可以將 Calibre 的命令列版本與ebook-convert
結合使用,例如:
$ ebook-convert " XXXX/safaribooks/Books/Test-Driven Development with Python 2nd Edition (9781491958698)/9781491958698.epub " " XXXX/safaribooks/Books/Test-Driven Development with Python 2nd Edition (9781491958698)/9781491958698_CLEAR.epub "
執行後,您可以在每個電子閱讀器中閱讀9781491958698_CLEAR.epub
,並刪除所有其他檔案。
該程式還提供了一個選項,以確保想要將EPUB
匯出到 Amazon Kindle 等電子閱讀器的使用者的最佳相容性: --kindle
,它會阻止table
和pre
元素上的溢出(請參閱範例)。
在這種情況下,我建議您使用 Calibre 將EPUB
轉換為AZW3
或MOBI
,請記住在這種情況下在轉換選項中選擇Ignore margins
:
$ python3 safaribooks.py --cred " [email protected]:MyPassword1! " 9781491958698
____ ___ _
/ __/__ _/ _/__ _____(_)
_ / _ ` / _/ _ ` / __/ /
/___/ _ ,_/_/ _ ,_/_/ /_/
/ _ )___ ___ / /__ ___
/ _ / _ / _ / ' _/(_-<
/____/___/___/_/_/___/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[-] Logging into Safari Books Online...
[*] Retrieving book info...
[-] Title: Test-Driven Development with Python, 2nd Edition
[-] Authors: Harry J.W. Percival
[-] Identifier: 9781491958698
[-] ISBN: 9781491958704
[-] Publishers: O ' Reilly Media, Inc.
[-] Rights: Copyright © O ' Reilly Media, Inc.
[-] Description: By taking you through the development of a real web application
from beginning to end, the second edition of this hands-on guide demonstrates the
practical advantages of test-driven development (TDD) with Python. You’ll learn
how to write and run tests before building each part of your app, and then develop
the minimum amount of code required to pass those tests. The result? Clean code
that works.In the process, you’ll learn the basics of Django, Selenium, Git,
jQuery, and Mock, along with curre...
[-] Release Date: 2017-08-18
[-] URL: https://learning.oreilly.com/library/view/test-driven-development-with/9781491958698/
[*] Retrieving book chapters...
[*] Output directory:
/XXXX/safaribooks/Books/Test-Driven Development with Python 2nd Edition (9781491958698)
[-] Downloading book contents... (53 chapters)
[#####################################################################] 100%
[-] Downloading book CSSs... (2 files)
[#####################################################################] 100%
[-] Downloading book images... (142 files)
[#####################################################################] 100%
[-] Creating EPUB file...
[*] Done: /XXXX/safaribooks/Books/Test-Driven Development with Python 2nd Edition
(9781491958698)/9781491958698.epub
If you like it, please * this project on GitHub to make it known:
https://github.com/lorenzodifuccia/safaribooks
e don ' t forget to renew your Safari Books Online subscription:
https://learning.oreilly.com
[ ! ] Bye !!
結果將是(使用 Calibre 開啟EPUB
文件):
--kindle
選項: $ python3 safaribooks.py --kindle 9781491958698
右邊是使用--kindle
選項建立的書,左邊沒有(預設):
對於任何類型的問題,請隨時在GitHub上提出問題。
洛倫佐·迪·富西亞