Téléchargez et générez des EPUB de vos livres préférés à partir de la bibliothèque Safari Books Online .
Je ne suis pas responsable de l'utilisation de ce programme, c'est uniquement à des fins personnelles et éducatives .
Avant toute utilisation, veuillez lire les conditions d'utilisation d' O'Reilly .
safaribooks
ne fonctionne plus en raison de modifications apportées aux API ORLY.cookies.json
, voir ci-dessous et les problèmes. J'adore ❤️) --kindle
Tout d’abord, cela nécessite l’installation python3
et pip3
ou pipenv
.
$ git clone https://github.com/lorenzodifuccia/safaribooks.git
Cloning into ' safaribooks ' ...
$ cd safaribooks/
$ pip3 install -r requirements.txt
OR
$ pipenv install && pipenv shell
Le programme dépend de seulement deux modules Python 3 :
lxml >= 4.1 . 1
requests >= 2.20 . 0
C'est vraiment simple à utiliser, il suffit de choisir un livre dans la bibliothèque et de le remplacer par la commande suivante :
email:password
avec le vôtre. $ python3 safaribooks.py --cred " [email protected]:password01 " XXXXXXXXXXXXX
L'ID est constitué des chiffres que vous trouvez dans l'URL de la page de description du livre :
https://www.safaribooksonline.com/library/view/book-name/XXXXXXXXXXXXX/
Comme : 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.
La première fois que vous utiliserez le programme, vous devrez spécifier les informations d'identification de votre compte Safari Books Online (recherchez here
le caractère spécial).
La prochaine fois que vous téléchargerez un livre, avant l'expiration de la session, vous pourrez omettre les informations d'identification, car le programme enregistre les cookies de votre session dans un fichier appelé cookies.json
.
Pour le SSO , veuillez utiliser le programme sso_cookies.py
afin de créer le fichier cookies.json
à partir des cookies SSO récupérés par votre session de navigateur (veuillez suivre these steps
).
Faites attention si vous utilisez un PC partagé, car toute personne ayant accès à vos fichiers peut voler votre session. Si vous ne souhaitez pas mettre les cookies en cache, utilisez simplement l'option --no-cookies
et fournissez à tout moment vos informations d'identification via l'option --cred
ou l'option --login
, plus sûre : cela vous demandera vos informations d'identification pendant le script. exécution.
Vous pouvez configurer des proxys en définissant sur votre système la variable d'environnement HTTPS_PROXY
ou en utilisant la directive USE_PROXY
dans le script.
Important : étant donné que le script télécharge uniquement des pages HTML et crée un EPUB brut, de nombreuses directives CSS et XML/HTML sont erronées pour une liseuse. Pour garantir la meilleure qualité de sortie, je vous suggère de toujours convertir l' EPUB
obtenu par le script en EPUB
standard avec Calibre. Vous pouvez également utiliser la version en ligne de commande de Calibre avec ebook-convert
, par exemple :
$ 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 "
Après l'exécution, vous pouvez lire le 9781491958698_CLEAR.epub
dans chaque E-Reader et supprimer tous les autres fichiers.
Le programme offre également une option pour assurer les meilleures compatibilités pour qui souhaite exporter l' EPUB
vers des liseuses comme Amazon Kindle : --kindle
, il bloque les débordements sur les éléments table
et pre
(voir exemple).
Dans ce cas, je vous propose de convertir l' EPUB
en AZW3
avec Calibre ou en MOBI
, pensez dans ce cas à sélectionner Ignore margins
dans les options de conversion :
$ 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 !!
Le résultat sera (ouverture du fichier EPUB
avec Calibre) :
--kindle
: $ python3 safaribooks.py --kindle 9781491958698
A droite, le livre créé avec l'option --kindle
, à gauche sans (par défaut) :
Pour tout type de problème, n'hésitez pas à ouvrir un ticket ici sur GitHub .
Lorenzo Di Fuccia