Загрузите и создайте EPUB ваших любимых книг из онлайн-библиотеки Safari Books .
Я не несу ответственности за использование этой программы, она предназначена только для личных и образовательных целей.
Перед любым использованием прочтите Условия обслуживания O'Reilly .
safaribooks
больше не работает из-за изменений в API ORLY.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
Идентификатор — это цифры, которые вы найдете в 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_cookies.py
, чтобы создать файл cookies.json
из файлов cookie единого входа, полученных сеансом вашего браузера (выполните these steps
).
Обратите внимание, если вы используете общий компьютер, потому что каждый, у кого есть доступ к вашим файлам, может украсть ваш сеанс. Если вы не хотите кэшировать файлы cookie, просто используйте параметр --no-cookies
и постоянно предоставляйте свои учетные данные с помощью параметра --cred
или более безопасного --login
: это запросит у вас учетные данные во время выполнения сценария. исполнение.
Вы можете настроить прокси, установив в своей системе переменную среды HTTPS_PROXY
или используя директиву USE_PROXY
в скрипте.
Важно : поскольку сценарий загружает только HTML-страницы и создает необработанный EPUB, многие директивы CSS и XML/HTML не подходят для электронной книги. Чтобы обеспечить наилучшее качество вывода, я предлагаю вам всегда конвертировать EPUB
, полученный сценарием, в стандартный EPUB
с помощью Caliber. Вы также можете использовать версию Caliber для командной строки с 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
(см. пример).
В этом случае я предлагаю вам преобразовать EPUB
в AZW3
с помощью Caliber или в 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 !!
Результат будет (открытие файла EPUB
с помощью Caliber):
--kindle
: $ python3 safaribooks.py --kindle 9781491958698
Справа книга, созданная с опцией --kindle
, слева без опции (по умолчанию):
Если у вас возникнут какие-либо проблемы, не стесняйтесь открывать вопрос здесь, на GitHub .
Лоренцо Ди Фучча