Skip to content

Instantly share code, notes, and snippets.

@javascripto
Created June 21, 2018 22:59
Show Gist options
  • Select an option

  • Save javascripto/ce7aa8aa311c6676ef22f0f933af9be2 to your computer and use it in GitHub Desktop.

Select an option

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
#!/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