Descargue y genere EPUB de sus libros favoritos de la biblioteca Safari Books Online .
No soy responsable del uso de este programa, es sólo para fines personales y educativos .
Antes de cualquier uso, lea los Términos de servicio de O'Reilly .
safaribooks
ya no funciona debido a cambios en las API de ORLY.cookies.json
, consulte a continuación los problemas. Me encanta ❤️) --kindle
En primer lugar, requiere la instalación de python3
y pip3
o pipenv
.
$ git clone https://github.com/lorenzodifuccia/safaribooks.git
Cloning into ' safaribooks ' ...
$ cd safaribooks/
$ pip3 install -r requirements.txt
OR
$ pipenv install && pipenv shell
El programa depende de sólo dos módulos de Python 3 :
lxml >= 4.1 . 1
requests >= 2.20 . 0
Es realmente simple de usar, simplemente elija un libro de la biblioteca y reemplácelo con el siguiente comando:
email:password
con la suya propia. $ python3 safaribooks.py --cred " [email protected]:password01 " XXXXXXXXXXXXX
El ID son los dígitos que encuentras en la URL de la página de descripción del libro:
https://www.safaribooksonline.com/library/view/book-name/XXXXXXXXXXXXX/
Me gusta: 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 primera vez que utilice el programa, deberá especificar las credenciales de su cuenta de Safari Books Online (busque here
los caracteres especiales).
Las próximas veces que descargues un libro, antes de que expire la sesión, puedes omitir la credencial, porque el programa guarda las cookies de tu sesión en un archivo llamado cookies.json
.
Para SSO , utilice el programa sso_cookies.py
para crear el archivo cookies.json
a partir de las cookies de SSO recuperadas por la sesión de su navegador (siga these steps
).
Presta atención si usas una PC compartida, porque cualquiera que tenga acceso a tus archivos puede robar tu sesión. Si no desea almacenar en caché las cookies, simplemente use la opción --no-cookies
y proporcione en todo momento su credencial a través de la opción --cred
o la opción más segura --login
: esto le solicitará la credencial durante el script. ejecución.
Puede configurar servidores proxy configurando en su sistema la variable de entorno HTTPS_PROXY
o usando la directiva USE_PROXY
en el script.
Importante : dado que el script solo descarga páginas HTML y crea un EPUB sin formato, muchas de las directivas CSS y XML/HTML son incorrectas para un lector electrónico. Para garantizar la mejor calidad del resultado, le sugiero que siempre convierta el EPUB
obtenido mediante el script a EPUB
estándar con Calibre. También puedes usar la versión de línea de comandos de Calibre con ebook-convert
, por ejemplo:
$ 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 "
Después de la ejecución, puede leer el 9781491958698_CLEAR.epub
en cada E-Reader y eliminar todos los demás archivos.
El programa también ofrece una opción para garantizar las mejores compatibilidades para quienes quieran exportar el EPUB
a lectores electrónicos como Amazon Kindle: --kindle
, bloquea el desbordamiento en table
y los elementos pre
(ver ejemplo).
En este caso te sugiero convertir el EPUB
a AZW3
con Calibre o a MOBI
, recuerda en este caso seleccionar Ignore margins
en las opciones de conversión:
$ 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 !!
El resultado será (abriendo el archivo EPUB
con Calibre):
--kindle
: $ python3 safaribooks.py --kindle 9781491958698
A la derecha, el libro creado con la opción --kindle
, a la izquierda sin (predeterminado):
Para cualquier tipo de problema, no dude en abrir un problema aquí en GitHub .
Lorenzo Di Fuccia