def doador_2004(cnpj_ou_cpf): u''' Retorna uma tabela com as doações desta pessoa (cnpj_ou_cpf). A tabela é uma lista de listas, cada uma contendo os campos em "doador_2004.campos". >>> tabela = doador_2004('85.907.012/0001-57') >>> tabela is not None True >>> len(tabela) 16 >>> len(tabela[0]) == len(doador_2004.campos) True URL: http://www.tse.gov.br/internet/eleicoes/2004/prest_blank.htm ''' pessoa = pessoa_or_valueerror(cnpj_ou_cpf) scraper = Scraper() url = 'http://www.tse.gov.br/sadEleicao2004Prestacao/spce/index.jsp' scraper.open(url) scraper.browser.select_form(name='formDoador') scraper.browser.form.find_control(name='nome').readonly = False scraper.browser.form.find_control(name='numero').readonly = False scraper.browser.form['numero'] = pessoa.plain() scraper.browser.form['nome'] = '%' try: scraper.submit() except: return None if not scraper.html.find(text=regexp('Valor Total de Fornecimento')): return None table = scraper.html.findAll('table')[-1] lines = [] for tr in table.findAll('tr')[1:-1]: columns = [] for td in tr.findAll('td'): try: contents = td.b.contents except: contents = td.contents content = ' '.join(contents).strip() text = html2unicode(content) columns.append(text) lines.append(columns) return lines
def doador_2006(cnpj_ou_cpf): u''' Retorna uma tabela com as doações desta pessoa (cnpj_ou_cpf). A tabela é uma lista de listas, cada uma contendo os campos em "doador_2006.campos". >>> tabela = doador_2006('181.929.206-15') >>> tabela is not None True >>> len(tabela) 1 >>> len(tabela[0]) == len(doador_2006.campos) True URL: http://www.tse.gov.br/internet/eleicoes/2006/prest_contas_blank.htm ''' pessoa = pessoa_or_valueerror(cnpj_ou_cpf) scraper = Scraper() url = 'http://www.tse.gov.br/sadSPCE06F3/faces/careceitaByDoador.jsp' scraper.open(url) scraper.browser.form['frmByDoador:cdCpfCgc'] = pessoa.plain() scraper.submit(name='frmByDoador:_id4') strong = scraper.html.find('strong', text=regexp('.*prestadas pelo doador.*')) if strong is None: return None table = strong.parent.parent.parent.parent table = table.nextSibling.nextSibling.nextSibling.nextSibling lines = [] for tr in table.tbody.findAll('tr'): columns = [] for td in tr.findAll('td'): content = td.contents[0].strip() text = html2unicode(content) columns.append(text) lines.append(columns) return lines