Safari Books Onlineライブラリからお気に入りの本のEPUB をダウンロードして生成します。
私はこのプログラムの使用について責任を負いません。これは個人的および教育目的のみに使用されます。
使用する前に、オライリーの利用規約をお読みください。
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
このプログラムは 2 つの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
に従ってください)。
共有 PC を使用している場合は、ファイルにアクセスできる全員がセッションを盗むことができるため、注意してください。 Cookie をキャッシュしたくない場合は、 --no-cookies
オプションを使用し、 --cred
オプションまたはより安全な--login
オプションを使用して常に資格情報を提供します。これにより、スクリプト中に資格情報の入力が求められます。実行。
システムに環境変数HTTPS_PROXY
を設定するか、スクリプトでUSE_PROXY
ディレクティブを使用することによって、プロキシを構成できます。
重要: このスクリプトは HTML ページをダウンロードして生の EPUB を作成するだけなので、CSS および XML/HTML ディレクティブの多くは電子書籍リーダーにとっては間違っています。最高の出力品質を確保するには、スクリプトによって取得されたEPUB
常に Calibre を使用して標準EPUB
に変換することをお勧めします。 ebook-convert
で Calibre のコマンドライン バージョンを使用することもできます。例:
$ 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
要素のオーバーフローをブロックします (例を参照)。
この場合、 EPUB
Calibre で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で問題を開いてください。
ロレンツォ・ディ・フッチャ