Created
June 21, 2018 22:59
-
-
Save javascripto/ce7aa8aa311c6676ef22f0f933af9be2 to your computer and use it in GitHub Desktop.
python scraper para conseguir todos versículos, capítulos e versões da bíblia contidas no site bibliaonline.com.br
This file contains hidden or 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
| #!/usr/bin/python3 | |
| # coding: utf-8 | |
| from os import system | |
| from time import time | |
| inicio = time() | |
| system('clear') | |
| def scraping(url_inicial, url_final, arquivo_saida): | |
| from bs4 import BeautifulSoup as BS | |
| import requests, json | |
| url = url_inicial | |
| parar_loop = False | |
| biblia = {} | |
| while True: | |
| r = requests.get(url) | |
| soup = BS(r.text, 'html.parser') | |
| livro, capitulo = list(map(lambda a: a.text,soup.header.h1.findAll('a'))) | |
| versos = list(map(lambda p: p.contents[1][1:], soup.findAll('div', {'class': 'passage'})[0].findAll('p'))) | |
| versos = dict([[str(k+1), v] for (k, v) in enumerate(versos)]) | |
| link_proximo = soup.article.findAll('div')[2].findAll('a')[2]['href'] | |
| print(livro, capitulo) | |
| if not livro in biblia: | |
| biblia[livro] = {} | |
| biblia[livro][capitulo] = versos | |
| url = link_proximo | |
| if parar_loop: break | |
| if url == url_final: parar_loop = True | |
| biblia_json = json.dumps(biblia, ensure_ascii=False) | |
| f = open('json/%s.json' % arquivo_saida , 'w') | |
| f.write(biblia_json) | |
| f.close() | |
| versoes = { | |
| 'acf': 'Almeida Corrigida Fiel', | |
| 'aa': 'Almeida Revisada Imprensa Bíblica', | |
| 'nvi': 'Nova Versão Internacional', | |
| 'ol': 'O livro', | |
| 'tb': 'Sociedade Bíblica Britânica' | |
| } | |
| # # Teste curto | |
| # url_inicial = 'https://www.bibliaonline.com.br/acf/gn/49' | |
| # url_final = 'https://www.bibliaonline.com.br/acf/ex/3' | |
| # # Scraping de uma unica tradução | |
| # scraping(url_inicial, url_final, 'biblia_ACF_json') | |
| # Scraping de todas traduções | |
| url_inicial = 'https://www.bibliaonline.com.br/acf/gn/1' | |
| url_final = 'https://www.bibliaonline.com.br/acf/ap/22' | |
| for k in versoes: | |
| print('\nScraping versão: %s' % versoes[k]) | |
| ini = url_inicial.replace('acf', k) | |
| fim = url_final.replace('acf', k) | |
| scraping(ini, fim, 'biblia_%s_json' % str(k).upper()) | |
| print('\nConcluido em %d segundos' % (time()-inicio)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment