Baixe e gere EPUB de seus livros favoritos da biblioteca Safari Books Online .
Não sou responsável pelo uso deste programa, ele é apenas para fins pessoais e educacionais .
Antes de qualquer uso, leia os Termos de Serviço da O'Reilly .
safaribooks
não funciona mais devido a alterações nas APIs ORLY.cookies.json
, veja abaixo e problemas. Amor ❤️) --kindle
Em primeiro lugar, é necessário instalar python3
e 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
O programa depende de apenas dois módulos Python 3 :
lxml >= 4.1 . 1
requests >= 2.20 . 0
É muito simples de usar, basta escolher um livro da biblioteca e substituir no seguinte comando:
email:password
com a sua. $ python3 safaribooks.py --cred " [email protected]:password01 " XXXXXXXXXXXXX
O ID são os dígitos que você encontra no URL da página de descrição do livro:
https://www.safaribooksonline.com/library/view/book-name/XXXXXXXXXXXXX/
Curta: 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.
Na primeira vez que usar o programa, você terá que especificar as credenciais da sua conta Safari Books Online (procure here
os caracteres especiais).
Nas próximas vezes que você fizer download de um livro, antes que a sessão expire, você poderá omitir a credencial, pois o programa salva os cookies da sua sessão em um arquivo chamado cookies.json
.
Para SSO , use o programa sso_cookies.py
para criar o arquivo cookies.json
a partir dos cookies SSO recuperados pela sessão do seu navegador (siga these steps
).
Preste atenção se você usa um PC compartilhado, pois qualquer pessoa que tenha acesso aos seus arquivos pode roubar sua sessão. Se você não quiser armazenar os cookies em cache, basta usar a opção --no-cookies
e fornecer sempre sua credencial através da opção --cred
ou a mais segura --login
: isso solicitará a credencial durante o script execução.
Você pode configurar proxies definindo em seu sistema a variável de ambiente HTTPS_PROXY
ou usando a diretiva USE_PROXY
no script.
Importante : como o script apenas baixa páginas HTML e cria um EPUB bruto, muitas das diretivas CSS e XML/HTML são erradas para um E-Reader. Para garantir a melhor qualidade de saída, sugiro que você sempre converta o EPUB
obtido pelo script para EPUB
padrão com Calibre. Você também pode usar a versão de linha de comando do Calibre com ebook-convert
, por exemplo:
$ 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 "
Após a execução, você pode ler o 9781491958698_CLEAR.epub
em cada E-Reader e excluir todos os outros arquivos.
O programa oferece também uma opção para garantir as melhores compatibilidades para quem deseja exportar o EPUB
para E-Readers como Amazon Kindle: --kindle
, bloqueia overflow na table
e pre
elementos (ver exemplo).
Neste caso, sugiro que você converta o EPUB
para AZW3
com Calibre ou para MOBI
, lembre-se neste caso de selecionar Ignore margins
nas opções de conversão:
$ 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 !!
O resultado será (abrindo o arquivo EPUB
com Calibre):
--kindle
: $ python3 safaribooks.py --kindle 9781491958698
À direita, o livro criado com a opção --kindle
, à esquerda sem (padrão):
Para qualquer tipo de problema, não hesite em abrir um issue aqui no GitHub .
Lorenzo Di Fuccia