Consulta CNPJ na receita Federal,

890 views
Skip to first unread message

Laerte Allan Oliveira Araújo

unread,
Feb 22, 2014, 9:24:20 AM2/22/14
to python...@googlegroups.com
olá a todos,

Estou postando um código de pesquisa de cnjpj junto a receita federal. Isso porque é dificil encontrar essas pesquisas na linguagem python.

Esse programinha funciona muito bem e utiliza uma biblioteca do Junior Polegato é so baixar e instalar.... Lembando que foi ele que fez o programinha...

Abaixo o link pra baixar o fonte e o código fonte.... Lembrando que em outro tópico tem a pesquisa de cpf



#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pole
import re
import os
import urllib2

conexao = pole.http.Conexao('www.receita.fazenda.gov.br')
dados = conexao.obter_dados('/PessoaJuridica/CNPJ/cnpjreva/'
                            'cnpjreva_solicitacao2.asp')
html = dados['conteúdo']
view = urllib2.quote(re.sub(".*<input type=hidden id=viewstate"
                            " name=viewstate value='([^']*).*", r'\1',
                            html, flags=re.DOTALL), '')
img_src = re.sub(".*<img border='0' id='imgcaptcha' alt='Imagem com os"
                 " caracteres anti rob.' src='([^']*).*", r'\1',
                 html, flags=re.DOTALL).replace('&amp;', '&')
dados = conexao.obter_dados(img_src)
open('/tmp/captcha.jpg', 'wb').write(dados['conteúdo'])
os.system('xdg-open /tmp/captcha.jpg')
captcha = raw_input('Captcha: ')
cnpj = raw_input('CNPJ: ')
inputs = ("origem=comprovante&viewstate=%s&cnpj=%s&captcha=%s&"
"captchaAudio=&submit1=Consultar&search_type=cnpj") % (
          view, cnpj, captcha)
print inputs
dados = conexao.obter_dados('/PessoaJuridica/CNPJ/cnpjreva/valida.asp',
                            inputs)
html = dados['conteúdo']
print html
campos = []
for c in re.findall('<font[^>]*>(.*?)</font>', html, flags=re.DOTALL):
    campos.append(re.sub('[\t\r\n ]+', ' ', re.sub('<[^>]*>', '', c)
                  ).strip().decode('windows-1252'))
    print campos[-1]

 

Tito Gonzales

unread,
Feb 22, 2014, 12:14:43 PM2/22/14
to python...@googlegroups.com
Valeu por compartilhar, foi pro meu bookmark

Marcelo Maia

unread,
Feb 25, 2014, 3:50:35 PM2/25/14
to python...@googlegroups.com
Tentei instalar esta lib, deu erro :/

ebi@ebi-Digitron$ (git::master) sudo bash compilar_tudo 
`fontes/pole/PoleGTK.pyc' -> `modulos/PoleGTK.pyc'
`fontes/pole/PoleHTTP.pyc' -> `modulos/PoleHTTP.pyc'
`fontes/pole/PolePDF.pyc' -> `modulos/PolePDF.pyc'
`fontes/pole/PoleNFe.pyc' -> `modulos/PoleNFe.pyc'
`fontes/pole/PolePrinter.pyc' -> `modulos/PolePrinter.pyc'
`fontes/pole/teste_cairo_pdf.pyc' -> `modulos/teste_cairo_pdf.pyc'
`fontes/pole/PoleXML.pyc' -> `modulos/PoleXML.pyc'
`fontes/pole/PoleLog.pyc' -> `modulos/PoleLog.pyc'
`fontes/pole/PoleUtil.pyc' -> `modulos/PoleUtil.pyc'
`fontes/pole/PoleSetting.pyc' -> `modulos/PoleSetting.pyc'
`fontes/pole/PoleDANFe.pyc' -> `modulos/PoleDANFe.pyc'
`fontes/pole/__init__.pyc' -> `modulos/__init__.pyc'
`fontes/pole/PoleRelatorio.pyc' -> `modulos/PoleRelatorio.pyc'
fontes/pole/PoleXmlSec.c:38:26: fatal error: libxslt/xslt.h: No such file or directory
compilation terminated.

Linux - Junior Polegato

unread,
Feb 25, 2014, 4:02:16 PM2/25/14
to python...@googlegroups.com
Em 25-02-2014 17:50, Marcelo Maia escreveu:
> Tentei instalar esta lib, deu erro :/
> ebi@ebi-Digitron$ (git::master) sudo bash compilar_tudo
> `fontes/pole/PoleGTK.pyc' -> `modulos/PoleGTK.pyc'
> `fontes/pole/PoleHTTP.pyc' -> `modulos/PoleHTTP.pyc'
> `fontes/pole/PolePDF.pyc' -> `modulos/PolePDF.pyc'
> `fontes/pole/PoleNFe.pyc' -> `modulos/PoleNFe.pyc'
> `fontes/pole/PolePrinter.pyc' -> `modulos/PolePrinter.pyc'
> `fontes/pole/teste_cairo_pdf.pyc' -> `modulos/teste_cairo_pdf.pyc'
> `fontes/pole/PoleXML.pyc' -> `modulos/PoleXML.pyc'
> `fontes/pole/PoleLog.pyc' -> `modulos/PoleLog.pyc'
> `fontes/pole/PoleUtil.pyc' -> `modulos/PoleUtil.pyc'
> `fontes/pole/PoleSetting.pyc' -> `modulos/PoleSetting.pyc'
> `fontes/pole/PoleDANFe.pyc' -> `modulos/PoleDANFe.pyc'
> `fontes/pole/__init__.pyc' -> `modulos/__init__.pyc'
> `fontes/pole/PoleRelatorio.pyc' -> `modulos/PoleRelatorio.pyc'
> fontes/pole/PoleXmlSec.c:38:26: fatal error: libxslt/xslt.h: No such
> file or directory
> compilation terminated.

Olá!

Já respondi em outro e-mail sobre consulta de CPF, mas aí vai
novamente:

Este erro ocorre por causa de um módulo em CPython que é para assinar
arquivos XML.

Se não for assinar arquivo XML, voltado ao uso de NFe, apague/comente
essa linha com "gcc" do arquivo "compilartudo".

Se for assinar, precisa ter instalados os pacotes libpython2.7-dev,
libxml2-dev, libxmlsec1-dev, libxslt1-dev e suas dependências, se for
Debian ou Ubuntu use "apt-get install libpython2.7-dev libxml2-dev
libxmlsec1-dev libxslt1-dev".

Não tem o setup para instalar, como ainda trabalho no desenvolvimento do
mesmo, costumo ter ele num diretório a parte que trabalho com git e no
diretório onde vou rodar um programa faço "ln -s
/home/usuario/desenvolvimento/pole/modulos pole", assim cria um link
simbólico com nome de pole para esta pasta do pole compilado e posso
fazer um "import pole" sem problemas.

--

[]'s

Junior Polegato
Reply all
Reply to author
Forward
0 new messages