Skip to content

Instantly share code, notes, and snippets.

@dunossauro
Last active March 21, 2018 02:20
Show Gist options
  • Save dunossauro/f9c751b8a2ad89a822eb4283ebf4129c to your computer and use it in GitHub Desktop.
Save dunossauro/f9c751b8a2ad89a822eb4283ebf4129c to your computer and use it in GitHub Desktop.
Exemplo do download das agendas do www.mdic.gov.br
"""Exemplo agendas.
Não mencionar PEP8, feito em 5m
"""
from re import sub
from bs4 import BeautifulSoup as bs
from selenium import webdriver
from requests import get
browser = webdriver.Firefox()
base_url = 'http://www.mdic.gov.br/index.php/agenda'
h1_class = 'autoridades-item-destaque'
req = get(base_url, 'html.parser').text
page = bs(req)
links = [(f"{base_url}{(x.find('a')['href'])}", y.text)
for x, y in zip(page.find_all('div', {'class': h1_class}),
page.find_all('a', {'class': 'link-nome-autoridade'}))]
file = open('out.csv', 'w')
file.write('Dia;Horário;nome;evento\n')
def scrap(page_source):
data = page_source.find('div', {'class': 'autoridade-header'})
text_page = page_source.find('div', {'class': 'autoridade-compromissos tile-list-1'})
agendas = text_page.find_all('h3')
horarios = text_page.find_all('li', {'class': 'autoridade-compromisso-inicio'})
for agenda, horario in zip(agendas, horarios):
file.write(
'{};{};{};{}\n'.format(data.find('h2').text.strip(),
horario.text.strip().strip('Início:').strip(),
nome.strip(),
agenda.text.strip()))
for link, nome in links:
browser.get(link)
process_html = bs(browser.page_source)
scrap(process_html)
file.close()
browser.quit()
We can make this file beautiful and searchable if this error is corrected: It looks like row 2 should actually have 1 column, instead of 4 in line 1.
Dia;Horário;nome;evento
Terça, 20 de março de 2018;08h30;Marcos Jorge;Reunião governamental: Encontro Empresarial Brasil-Colômbia com a presença do Presidente da Colômbia, Juan Manoel Santos e o Ministro das Relações Exteriores, Aloysio Nunes
Terça, 20 de março de 2018;09h45;Marcos Jorge;Reunião governamental: Encontro Bilateral com a Ministra de Comércio da Colômbia, Maria Lorena Gutierrez
Terça, 20 de março de 2018;10h30;Marcos Jorge;Reunião governamental: Cerimônia Oficial de Chegada do Presidente da Colômbia, Juan Manuel Santos
Terça, 20 de março de 2018;10h45;Marcos Jorge;Reunião Governamental: Reunião Ampliada Brasil / Colômbia
Terça, 20 de março de 2018;11h45;Marcos Jorge;Reunião governamental: Cerimônia de Assinatura de Atos, seguido de declaração à Imprensa, por ocasião da visita do Presidente da Colômbia
Terça, 20 de março de 2018;16h00;Marcos Jorge;Reunião Governamental: IV Reunião de Ministros de Indústria, Comércio e Serviços do Mercosul
Terça, 20 de março de 2018;08h30;Yana Dumaresq Sobral Alves;Cumprindo agenda de Secretária-Executiva Substituta
Terça, 20 de março de 2018;15h00;Yana Dumaresq Sobral Alves;Cumprindo agenda de Secretária Executiva Substituta
Terça, 20 de março de 2018;17h00;Yana Dumaresq Sobral Alves;Reunião Governamental: Reunião com o Presidente Michel Temer e o Presidente do Instituto Aço Brasil, Marco Polo
Terça, 20 de março de 2018;08h30;Yana Dumaresq Sobral Alves;Reunião Governamental: Encontro Empresarial Brasil-Colômbia com a presença do presidente da Colômbia, Juan Manoel Santos, e o Ministro das Relações Exteriores, Aloysio Nunes
Terça, 20 de março de 2018;15h00;Yana Dumaresq Sobral Alves;Reunião Governamental: Reunião com o Chefe de Gabinete Adjunto de Informações do Gabinete Pessoal do Presidente da República, Sérgio Henrique Moreira Sousa
Terça, 20 de março de 2018;17h00;Yana Dumaresq Sobral Alves;Cumprindo agenda de Ministra Substituta
Terça, 20 de março de 2018;10h00;Douglas Finardi Ferreira;Reunião Governamental: Eduardo Tosta, Especialista em Projetos da Agência Brasileira de Desenvolvimento Industrial – ABDI
Terça, 20 de março de 2018;16h00;Douglas Finardi Ferreira;Reunião Governamental: Orlando Leite Ribeiro, diretor do Departamento de Promoção Comercial e Investimentos do Ministério das Relações Exteriores
Terça, 20 de março de 2018;Dia tod;Thaíse Dutra;Despachos internos
Terça, 20 de março de 2018;Dia tod;Dayvson Franklin de Souza;Despachos internos
Terça, 20 de março de 2018;08h30;Abrão Neto;Evento Público: Encontro Empresarial Brasil - Colômbia com a presença do Presidente da Colômbia, Juan Manoel Santos e o Ministro das Relações Exteriores, Aloysio Nunes.
Terça, 20 de março de 2018;13h00;Abrão Neto;Deslocamento Brasília / Assunção
beautifulsoup4==4.6.0
bs4==0.0.1
certifi==2018.1.18
chardet==3.0.4
decorator==4.2.1
idna==2.6
ipdb==0.11
ipython==6.2.1
ipython-genutils==0.2.0
jedi==0.11.1
parso==0.1.1
pexpect==4.4.0
pickleshare==0.7.4
prompt-toolkit==1.0.15
ptyprocess==0.5.2
Pygments==2.2.0
requests==2.18.4
selenium==3.11.0
simplegeneric==0.8.1
six==1.11.0
traitlets==4.3.2
urllib3==1.22
wcwidth==0.1.7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment