Scrapping do site transparecia do senado

13 views
Skip to first unread message

Pedro Limeira

unread,
Jul 12, 2011, 8:54:17 PM7/12/11
to gmf-und...@googlegroups.com, geso...@googlegroups.com, gesi...@googlegroups.com, thac...@googlegroups.com, plli...@gmail.com, Alexandre Sales Vasconcelos, Talita Lôbo, Heitor Meira, Tiago Leite, Thiago Leite, Hudson daniel santana, Jose Arthur Morais Veras e Silva, garyva...@gmail.com, Pedro Adelino
http://www.gmf.ufcg.edu.br/~pedro/maioresGastadores/

Não é a melhor coisa que já fiz na vida, mas
queria divulgar. É a primeira coisa de scrapping que faço.

Qualquer sugestão é bem vinda.

--
Undergraduate Science Computer at UFCG - http://www.dsc.ufcg.edu.br/
Member of Laboratory of Dedicated Architectures - http://www.lad.dsc.ufcg.edu.br/

Pedro Markun

unread,
Jul 12, 2011, 10:21:09 PM7/12/11
to thac...@googlegroups.com
Opa Pedro!

Muito legal.

Sugestão: Bota o link pro source.
Sugestão2: Explica em algumas linhas qual a lógica pra extrair os gastadores :)

abs,
Pedro Markun

2011/7/12 Pedro Limeira <prmli...@gmail.com>
--
Você está recebendo esta mensagem porque se inscreveu no grupo "Transparência Hacker" dos Grupos do Google.
Para postar neste grupo, envie um e-mail para thac...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para thackday+u...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/thackday?hl=pt-BR.

Pedro Limeira

unread,
Jul 12, 2011, 8:56:16 PM7/12/11
to gmf-und...@googlegroups.com, geso...@googlegroups.com, gesi...@googlegroups.com, thac...@googlegroups.com, plli...@gmail.com, Alexandre Sales Vasconcelos, Talita Lôbo, Heitor Meira, Tiago Leite, Thiago Leite, Hudson daniel santana, Jose Arthur Morais Veras e Silva, garyva...@gmail.com, Pedro Adelino
Só para alertar o senador com maior gastos foi Demostenes Torres.
outra coisa, o código está aqui: http://www.gmf.ufcg.edu.br/~pedro/maioresGastadores/MaioresGastadores.py

Duke

unread,
Jul 12, 2011, 10:39:53 PM7/12/11
to thac...@googlegroups.com
Ola Pedro(s)

Eu diria uma coisa, seu código deveria ser legivel o suficiente para que
eu pudesse entende-lo sem comentario. Eu pelo menos acho horrivel codigo
com comentario.
Essa é minha sugestão.


--
Duke
du...@riseup.net
evinicius.com

Pedro Markun

unread,
Jul 12, 2011, 11:00:45 PM7/12/11
to thac...@googlegroups.com
cade o patch em anexo?

2011/7/12 Duke <du...@riseup.net>

Duke

unread,
Jul 12, 2011, 11:05:08 PM7/12/11
to thac...@googlegroups.com
:P vou instalar as libs para rodar isso,
dai mando um pacth

Duke

unread,
Jul 13, 2011, 12:37:19 AM7/13/11
to thac...@googlegroups.com
Esta em anexo o patch, não mexi muito, o patch muda tudo por que acho que
a tabulação é diferente, troquei algumas variaveis para ficar mais clara o
que é e removi algumas linhas, o código esta muito bom, só tinha umas
coisa como soup_m que acredito que não é legal por não dizer o que isso
faz.


Legal mexer com python :D Preciso mexer mais, tem suas diferencias
ideologicas do ruby, mas ainda da para fazer coisas limpas, vou ver se
construou algo em python.


ps: Hoje aprendi que python não tem operador ternario :(

MaioresGastadores.patch

Pedro Limeira

unread,
Jul 12, 2011, 11:04:24 PM7/12/11
to thac...@googlegroups.com
Vc diz o código ? Está no fim da página lá em baixo.

Pedro Limeira

unread,
Jul 13, 2011, 1:12:54 AM7/13/11
to thac...@googlegroups.com
Cara ficou bem legal. :D

Pedro Limeira

unread,
Jul 12, 2011, 10:28:40 PM7/12/11
to thac...@googlegroups.com
Valeu, Pedro.
Coloquei o link com o codigo em python lá.

Pedro Limeira

unread,
Jul 12, 2011, 10:46:19 PM7/12/11
to thac...@googlegroups.com
Comentei mais poque estou aprendendo a mecher com o BeautifulSoup agora dai quando for usar novamente o codigo em
alguma coisa, posso recorrer a codigos passados. Se bem que o código está bem sujo mesmo, não fiz nada de refatoramento
nem nada parecido, foi só sentar e escrever mesmo.
Mas, valeu pela dica!

Capi Etheriel

unread,
Jul 13, 2011, 11:12:36 AM7/13/11
to thac...@googlegroups.com, gmf-und...@googlegroups.com, geso...@googlegroups.com, gesi...@googlegroups.com, plli...@gmail.com, Alexandre Sales Vasconcelos, Talita Lôbo, Heitor Meira, Tiago Leite, Thiago Leite, Hudson daniel santana, Jose Arthur Morais Veras e Silva, garyva...@gmail.com, Pedro Adelino
acho que tá na hora de abrir um repo git pra esse projeto, porque eu já modifiquei sobre o patch do duke pra não ficar com o css na tag. claro que tendo um repo dá pra separar o css do script, melhorando a qualidade do código. pensei em passar pra lxml, porque é mais rápido e porque dá pra usar seletores de css e a vida fica mais simples... que acham?

Duke

unread,
Jul 13, 2011, 11:48:37 AM7/13/11
to thac...@googlegroups.com
Concordo Capi

esta feito https://github.com/thacker/maiores-gastadores-MG, sobe lá o que
você tem.

E quem não esta adicionado nos repositorios do thacker da um toque que
quem esta adicionado pode adicionar qualquer pessoa.

ps: Capi acabei de adicionar você

> --
> Você está recebendo esta mensagem porque se inscreveu no grupo
> "Transparência Hacker" dos Grupos do Google.

> Para ver esta discussão na web, acesse
> https://groups.google.com/d/msg/thackday/-/TwKttg7tShcJ.

Emerson da Rocha Luiz

unread,
Jul 13, 2011, 11:52:19 AM7/13/11
to thac...@googlegroups.com
Add eu no git do thacker. User fititnt.

Att. Emerson
--
Emerson da Rocha Luiz
+55 51 9881-9146  | MSN: emerson at webdesign.eng.br | GTalk: fititnt at Gmail | Skype: fititnt | http://www.fititnt.org | Twitter: @fititnt
Membro do JUGRS | Membro do JCoderBR



2011/7/13 Duke <du...@riseup.net>

Duke

unread,
Jul 13, 2011, 12:02:09 PM7/13/11
to thac...@googlegroups.com
Esta adicionado Emerson.


> Add eu no git do thacker. User fititnt.
>
> Att. Emerson
> --
> Emerson da Rocha Luiz
> +55 51 9881-9146 | MSN: emerson at webdesign.eng.br | GTalk: fititnt at
> Gmail | Skype: fititnt | http://www.fititnt.org | Twitter:

> @fititnt<http://twitter.com/fititnt>
> <http://twitter.com/fititnt>Membro do JUGRS
> <http://www.joomlatche.com.br/> |
> Membro do JCoderBR
> <https://github.com/JCBR/JCoderBR/wiki/Sobre-o-JCoderBR>


--
Duke
du...@riseup.net
evinicius.com

Capi Etheriel

unread,
Jul 13, 2011, 12:23:42 PM7/13/11
to thac...@googlegroups.com, du...@riseup.net
valeu não tinha subido ainda porque eu tava rodando o scraper pra ver se não tinha zoado o código.
na real, parou no meio por algum motivo. back to work.
MaioresGastadores.py

Emerson da Rocha Luiz

unread,
Jul 13, 2011, 1:13:55 PM7/13/11
to thac...@googlegroups.com, du...@riseup.net
Obrigado por add no git.

Não tenho pratica especificamente com python mas nada que não possa ser resolvido, mas o fato das não compiladas a ou uma das mais eficientes pra rodar executar algo é bem interessante para desse porte.

Aliás, se rolar mesmo o que falaram de um membro aqui dar uma aula meio introdutória a python me avisem que to dentro..

Att. Emerson

--
Emerson da Rocha Luiz
+55 51 9881-9146  | MSN: emerson at webdesign.eng.br | GTalk: fititnt at Gmail | Skype: fititnt | http://www.fititnt.org | Twitter: @fititnt
Membro do JUGRS | Membro do JCoderBR



2011/7/13 Capi Etheriel <barra...@gmail.com>
valeu não tinha subido ainda porque eu tava rodando o scraper pra ver se não tinha zoado o código.
na real, parou no meio por algum motivo. back to work.

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Transparência Hacker" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/thackday/-/nOf-9XBBKnsJ.

Pedro Limeira

unread,
Jul 13, 2011, 12:28:30 PM7/13/11
to thac...@googlegroups.com
Opa Duke,

Me adiciona ai por favor!

Pedro Limeira

unread,
Jul 13, 2011, 12:32:42 PM7/13/11
to thac...@googlegroups.com
Desculpe o usuario é prmlimeira

Pedro Limeira

unread,
Jul 13, 2011, 1:00:17 PM7/13/11
to thac...@googlegroups.com
Tu instalou as libs Capi ?

Em 13 de julho de 2011 13:23, Capi Etheriel <barra...@gmail.com> escreveu:
valeu não tinha subido ainda porque eu tava rodando o scraper pra ver se não tinha zoado o código.
na real, parou no meio por algum motivo. back to work.

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Transparência Hacker" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/thackday/-/nOf-9XBBKnsJ.

Para postar neste grupo, envie um e-mail para thac...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para thackday+u...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/thackday?hl=pt-BR.



--

Duke

unread,
Jul 13, 2011, 3:30:47 PM7/13/11
to thac...@googlegroups.com
Pedro adicionei.

Fiquem a vontade para contribuir para os projetos lá

Sent from iPhone

Emerson Vinicius (Duke)
11 7030-9216


Capi Etheriel

unread,
Jul 13, 2011, 3:39:13 PM7/13/11
to thac...@googlegroups.com
claro

Pedro Limeira

unread,
Jul 13, 2011, 3:33:40 PM7/13/11
to thac...@googlegroups.com
Obrigado, Duke.
Tem algum projeto com python que precise de melhorias ou mesmo
começar do zero mesmo, pra que eu já fique informado ?

Pedro Limeira

unread,
Jul 13, 2011, 3:43:50 PM7/13/11
to thac...@googlegroups.com
Qual ou quais ?

Em 13 de julho de 2011 16:39, Capi Etheriel <barra...@gmail.com> escreveu:
claro


--
Você está recebendo esta mensagem porque se inscreveu no grupo "Transparência Hacker" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/thackday/-/ZkTau8BNnBQJ.

Para postar neste grupo, envie um e-mail para thac...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para thackday+u...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/thackday?hl=pt-BR.

Duke

unread,
Jul 13, 2011, 8:38:27 PM7/13/11
to thac...@googlegroups.com
Não sei sobre todos projetos que tem lá, os meus, pelos menos, são em ruby. Mas pode da uma ajuda nesse projeto que o Pedro começou.


Sent from iPhone

Emerson Vinicius (Duke)
11 7030-9216


Fabiano Angélico

unread,
Jul 13, 2011, 9:19:07 PM7/13/11
to thac...@googlegroups.com
uai, não tou conseguindo baixar nada daqui: https://github.com/thacker/maiores-gastadores-MG..

Pedro Limeira:daria para scrappear também as categorias de despesa e as empresas/CNPJs associados a cada categoria?
Os dados estao todos aqui: http://www.senado.gov.br/transparencia/

Fabiano Angélico
Twitter: @fangelico
Blog: Notas Soltas (http://algumasnotassoltas.wordpress.com)
Facebook: fabiano.angelico
Skype: fabiano.angelico
(55) 11-8270.3020

De: Duke <du...@riseup.net>
Para: "thac...@googlegroups.com" <thac...@googlegroups.com>
Enviadas: Quarta-feira, 13 de Julho de 2011 21:38
Assunto: Re: [thackday] Re: Scrapping do site transparecia do senado

Duke

unread,
Jul 13, 2011, 11:28:18 PM7/13/11
to thac...@googlegroups.com
Ola Fabiano, 
Não tinha nada lá, pensei que o Capi ia subir o que ele fez.

Acabei de subi o código do Pedro com minhas alterações.

Capi Etheriel

unread,
Jul 13, 2011, 11:42:22 PM7/13/11
to thac...@googlegroups.com
instalei o beautifulsoup 3.2
coloquei minhas modificações no branch css_rewrite

Duke

unread,
Jul 13, 2011, 11:46:30 PM7/13/11
to thac...@googlegroups.com
:(

por que usar outro branch? 

On Jul 14, 2011, at 12:42 AM, Capi Etheriel wrote:

instalei o beautifulsoup 3.2
coloquei minhas modificações no branch css_rewrite

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Transparência Hacker" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/thackday/-/yLvJP6eZSEEJ.

Bruno Gola

unread,
Jul 13, 2011, 11:48:58 PM7/13/11
to thac...@googlegroups.com
2011/7/13 Duke <du...@riseup.net>:

> Esta em anexo o patch, não mexi muito, o patch muda tudo por que acho que
> a tabulação é diferente, troquei algumas variaveis para ficar mais clara o
> que é  e removi algumas linhas, o código esta muito bom, só tinha umas
> coisa como soup_m que acredito que não é legal por não dizer o que isso
> faz.
>
>
> Legal mexer com python :D Preciso mexer mais, tem suas diferencias
> ideologicas do ruby, mas ainda da para fazer coisas limpas, vou ver se
> construou algo em python.
>
>
> ps: Hoje aprendi que python não tem operador ternario :(

como não?

tente:

x = 1 if 1 == 1 else 2


:)

--
Bruno Fialho Marques Gola <brun...@gmail.com>
http://www.brunogola.com.br
Cel: (11) 9294-5883

Duke

unread,
Jul 14, 2011, 12:09:37 AM7/14/11
to thac...@googlegroups.com
pode isso Arnaldo?

Tinha visto algo assim, mas pensei que era um hack apenas que o cara fez.

Bruno Gola

unread,
Jul 14, 2011, 12:15:19 AM7/14/11
to thac...@googlegroups.com
2011/7/14 Duke <du...@riseup.net>:

> pode isso Arnaldo?
>
> Tinha visto algo assim, mas pensei que era um hack apenas que o cara fez.

nah, é a sintaxe mesmo :)

hack é o que faziam antes do python 2.5... coisas assim:

In [1]: x = 1 != 1 and 2 or 3

In [2]: x
Out[2]: 3

In [3]: x = 1 == 1 and 2 or 3

In [4]: x
Out[4]: 2

Pedro Markun

unread,
Jul 14, 2011, 2:28:13 AM7/14/11
to thac...@googlegroups.com
Eu até acho que entendi.

Mas rola explicar o que é esse operador ternario pra ficar registrado?

E Duke, como seria a sintaxe de ruby?

abs,
Pedro Markun

2011/7/14 Bruno Gola <brun...@gmail.com>

Pedro Limeira

unread,
Jul 14, 2011, 3:39:41 AM7/14/11
to thac...@googlegroups.com
Pessoal,

  To querendo fazer com que esses dados estejam disponiveis em JSON.
  Vcs sugerem mais algum formato ?

abs

Capi Etheriel

unread,
Jul 14, 2011, 8:07:23 AM7/14/11
to thac...@googlegroups.com
porque da primeira vez não tinha rodado direito...
mas agora rodou.

Capi Etheriel

unread,
Jul 14, 2011, 8:14:39 AM7/14/11
to thac...@googlegroups.com
ternário é um if else na mesma linha. em php é assim:

if $teste ? 'valor se der certo' : 'valor se der errado'

em ruby é igual , eu acho.

Duke

unread,
Jul 14, 2011, 8:37:19 AM7/14/11
to thac...@googlegroups.com

Capi, acho que não tem esse if ai.

um exemplo em ruby:

coisa = "ceu"
cor_da_coisa = coisa == "ceu" ? "azul" : "qualqueroutracor"

isso pergunta se a coisa é igual a ceu? se sim então a cor da coisa é
azul, se não é qualquer outra cor.

<condição> ? <operação 1> : <operação 2>

> ternário é um if else na mesma linha. em php é assim:
>
> if $teste ? 'valor se der certo' : 'valor se der errado'
>
> em ruby é igual , eu acho.
>

> --
> Você está recebendo esta mensagem porque se inscreveu no grupo
> "Transparência Hacker" dos Grupos do Google.

> Para ver esta discussão na web, acesse

> https://groups.google.com/d/msg/thackday/-/xC67W9Rf3gIJ.

Capi Etheriel

unread,
Jul 14, 2011, 9:50:40 AM7/14/11
to thac...@googlegroups.com, du...@riseup.net
pode crer, em php também não...

Pedro Limeira

unread,
Jul 15, 2011, 2:01:22 AM7/15/11
to thac...@googlegroups.com
Um tempinho antes de dormir fiz ficar ordenado(ranking) dos "maiores gastadores para os menores gastadores" e coloquei pra gerar um JSON também.
Já commitei lá no repo.

Abraços!

Em 14 de julho de 2011 10:50, Capi Etheriel <barra...@gmail.com> escreveu:
pode crer, em php também não...

--
Você está recebendo esta mensagem porque se inscreveu no grupo "Transparência Hacker" dos Grupos do Google.
Para ver esta discussão na web, acesse https://groups.google.com/d/msg/thackday/-/_SotaPzb0uQJ.

Para postar neste grupo, envie um e-mail para thac...@googlegroups.com.
Para cancelar a inscrição nesse grupo, envie um e-mail para thackday+u...@googlegroups.com.
Para obter mais opções, visite esse grupo em http://groups.google.com/group/thackday?hl=pt-BR.



--

Pedro Limeira

unread,
Jul 15, 2011, 2:04:55 AM7/15/11
to thac...@googlegroups.com

Duke

unread,
Jul 15, 2011, 9:22:12 PM7/15/11
to thac...@googlegroups.com
Massa Pedro, assim que puder vou dar uma olhada.
Seria bacana de podessemos expandi isso para outros estados

Sent from iPhone

Emerson Vinicius (Duke)
11 7030-9216


Renato Fabbri

unread,
Jul 16, 2011, 10:06:08 AM7/16/11
to thac...@googlegroups.com
em python, quando muito se quer, faz-se assim:

In [1]: a=('escolha1','escolha2')[7==8]

In [2]: a
Out[2]: 'escolha1'

In [3]: a=('escolha1','escolha2')[7==7]

In [4]: a
Out[4]: 'escolha2'

ou seja, coloca-se a condicional entre os colchetes finais e as opções
numa tupla ao início.

Duke,
<condição> ? <operação 1> : <operação 2>
não seria na verdade:
<condição> ? <valor 1> : <valor 2>

??

ou seja:
$verdade=opiniao_do_Senhor('Duke correto') ? 'operação' : 'valor';

XD
GNU/Linux User #479299
skype: fabbri.renato

Duke

unread,
Jul 16, 2011, 1:04:52 PM7/16/11
to thac...@googlegroups.com
Ola Renato,

Veja bem,

opiniao_do_senhor("Renato Correto") ? verdade(People.new(:name => "Renato")) : verdade(People.new(:name => "Duke")

usei o ternario sem definir valor algum para nada, ou seja, seria condição ? a operação executada se verdadeira : a operação executado se falso, no exemplo, dos emails anteriores, usamos apenas a definição de uma string, que no caso, a nossa operação seria retornar um valor

XD

Renato Fabbri

unread,
Jul 16, 2011, 1:18:25 PM7/16/11
to thac...@googlegroups.com
verdade mesmo!!!
valeu!

obatalá matou um gatinho fofo a menos hoje. Veja só
este script iniciado na Criação:

from Pantheon import Obatalá
from World import sharing, kitten

while True:
  if sharing == 0:
      Obatalá.kill( kitten )

Bruno Gola

unread,
Jul 16, 2011, 6:59:20 PM7/16/11
to thac...@googlegroups.com
Duke, pode me adicionar la no thacker?

github.com/brunogola

:)

tks.

2011/7/16 Renato Fabbri <renato...@gmail.com>:

--

Nitai Silva

unread,
Jul 16, 2011, 7:33:12 PM7/16/11
to thac...@googlegroups.com
Bem legal a brincadeira com as operações ternárias.
Dá até pra encadear várias operações ternárias, porém, não é uma boa
prática utilizá-los. É preferível a legibilidade do código ao
minimalismo do código.
Ou seja, trocar 1 linha por 3 ou 5, ganhando em legibilidade.
:D

[]s

Nitai

> --
> Bruno Fialho Marques Gola <brun...@gmail.com>
> http://www.brunogola.com.br
> Cel: (11) 9294-5883
>

Capi Etheriel

unread,
Jul 16, 2011, 8:46:38 PM7/16/11
to thac...@googlegroups.com
vc esqueceu de checar se no user.Pantheon tem o Obatalá.

Duke

unread,
Jul 17, 2011, 6:30:17 PM7/17/11
to thac...@googlegroups.com
Concordo Nitai,
Legibilidade é melhor que ter menos código.

Sent from iPhone

Emerson Vinicius (Duke)
du...@riseup.net
11 7030-9216
evinicius.com

Pedro Limeira

unread,
Jul 20, 2011, 2:27:49 PM7/20/11
to thac...@googlegroups.com
Duke,

Ao contrario do que você estava pensando isso não é um scrapping de gastos
apenas dos senadores de MG e sim de todos os senadores da federação.

Abraços!

Duke

unread,
Jul 20, 2011, 10:06:21 PM7/20/11
to thac...@googlegroups.com
:( 

Vou trocar o nome do repositorio lá
Reply all
Reply to author
Forward
0 new messages