Last active
June 22, 2020 13:36
-
-
Save isaqueprofeta/e21514247e09f697b62b5148b32a1bfb to your computer and use it in GitHub Desktop.
Download dos livros grátis da Springer
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import requests | |
import csv | |
import os | |
# PREREQUISITOS: | |
# Python3.6 com bilbioteca Requests | |
# Script para download dos livros: | |
# https://www.hardmob.com.br/threads/744521-Springer-PDF-Livros-da-Editora-Springer-DE-GRACA-negocios-engenharia-medicina | |
# Download do CSV da lista disponibilizada | |
lista_livros = requests.get( | |
'https://docs.google.com/spreadsheets/d/1HzdumNltTj2SHmCv3SRdoub8SvpIEn75fa4Q23x0keU/export?format=csv&id=1HzdumNltTj2SHmCv3SRdoub8SvpIEn75fa4Q23x0keU' | |
) | |
# Leitura da lista para uma variável | |
planilha = csv.reader( | |
lista_livros.content.decode('utf-8').splitlines(), | |
delimiter=',' | |
) | |
# Cria uma lista de livros para remover o cabeçalho do CSV | |
livros = list(planilha) | |
livros.pop(0) | |
# Para cada livro da lista | |
for livro in livros: | |
# Lendo o CSV antes de começar, o nome está na primeira posição dos dados | |
nome_livro = livro[0].replace('/', '-') | |
# Fazendo o download manualmente, e estudando os links da para ver | |
# que o formato do link de download é = DOI%2FISBN | |
doi_isbn = livro[17].split('/')[3] + '%2F' + livro[17].split('/')[4] | |
# Fazendo o download manualmente, e estudando os links | |
# pego a URL e junto ela com o link de download | |
link_download = f'https://link.springer.com/content/pdf/{doi_isbn}' | |
# Lendo o CSV antes de começar, os generos do livro estão na 20a posição | |
# separados por ponto e virgula, então pego apenas o primeiro genero | |
pasta_genero = f'./{livro[19].split(';')[0]}/' | |
# Crio a pasta de genero se ela não existir | |
if not os.path.isdir(pasta_genero): | |
print(f'Criando diretório: {pasta_genero}') | |
os.mkdir(pasta_genero) | |
# Aviso onde estou e que vou começar o download | |
print(f'Fazendo download do livro: {nome_livro} na pasta {pasta_genero}') | |
# Executo do download em memória | |
download = requests.get(link_download) | |
# Salvo o arquivo em disco | |
open(f'{pasta_genero}{nome_livro}.pdf', | |
'wb').write(download.content) |
@rubenspasa seu problema é com os pré-requisitos definidos no início do código e que não estão sendo satisfeitos pelo seu ambiente.
Certo, vou ver se ajusto isso.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Estou tendo este erro:
SyntaxError: Non-ASCII character '\xc3' in file download_springer.py on line 16, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details