コード例 #1
0
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
コード例 #2
0
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