Erro Script Python

1. Erro Script Python

Paulo
primas

(usa Outra)

Enviado em 22/02/2017 - 10:41h

Pessoal estou executando o script para consulta de cnpj.
import json
import sys
import urllib.request

def usage():
print('Este script busca inforamções online sobre números de CNPJ')
print('Modo de uso: {0} "CNPJ[1]" "CNPJ[2]" ... "CNPJ[N]"'.format(sys.argv[0]))
sys.exit(1)


def valida_cnpj(cnpj):
'Recebe um CNPJ e retorna True se formato válido ou False se inválido'

cnpj = parse_input(cnpj)
if len(cnpj) != 14 or not cnpj.isnumeric():
return False

verificadores = cnpj[-2:]
lista_validacao_um = [5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]
lista_validacao_dois = [6, 5, 4, 3, 2, 9, 8, 7, 6, 5, 4, 3, 2]

'Calcular o primeiro digito verificador'
soma = 0
for numero, ind in zip(cnpj[:-1], range(len(cnpj[:-2]))):
soma += int(numero) * int(lista_validacao_um[ind])

soma = soma % 11
digito_um = 0 if soma < 2 else 11 - soma

'Calcular o segundo digito verificador'
soma = 0
for numero, ind in zip(cnpj[:-1], range(len(cnpj[:-1]))):
soma += int(numero) * int(lista_validacao_dois[ind])

soma = soma % 11
digito_dois = 0 if soma < 2 else 11 - soma

return verificadores == str(digito_um) + str(digito_dois)


def parse_input(i):
'Retira caracteres de separação do CNPJ'

i = str(i)
i = i.replace('.', '')
i = i.replace(',', '')
i = i.replace('/', '')
i = i.replace('-', '')
i = i.replace('\\', '')
return i


def busca_cnpj(cnpj):
url = 'http://receitaws.com.br/v1/cnpj/{0}'.format(cnpj)
opener = urllib.request.build_opener()
opener.addheaders = [
('User-agent',
" Mozilla/5.0 (Windows NT 6.2; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0")]

with opener.open(url) as fd:
content = fd.read().decode()

dic = json.loads(content)

if dic['status'] == "ERROR":
print('CNPJ {0} rejeitado pela receita federal\n\n'.format(cnpj))
else:
try:
RelacaoCNPJ = open('CNPJ/CNPJ_'+cnpj+'.txt', 'w')
RelacaoCNPJ.write('Nome: {0}\n'.format(dic['nome']))
RelacaoCNPJ.write('Nome fantasia: {0}\n'.format(dic['fantasia']))
RelacaoCNPJ.write('CNPJ: {0}\nData de abertura: {1}\n'.format(dic['cnpj'], dic['abertura']))
RelacaoCNPJ.write('Natureza: {0}\n'.format(dic['natureza_juridica']))
RelacaoCNPJ.write('Situação: {0}\nSituação especial: {1} Tipo: {2}\n'.format(dic['situacao'],
dic['situacao_especial'],
dic['tipo']))
RelacaoCNPJ.write('Motivo Situação especial: {0}\n'.format(dic['motivo_situacao']))
RelacaoCNPJ.write('Data da situação: {0}\n'.format(dic['data_situacao']))
RelacaoCNPJ.write('Atividade principal:')
RelacaoCNPJ.write(' {0} - {1}\n'.format(dic['atividade_principal'][0]['code'],
dic['atividade_principal'][0]['text']))
RelacaoCNPJ.write('Atividades secundárias:')
for elem in dic['atividades_secundarias']:
RelacaoCNPJ.write(' {0} - {1}\n'.format(elem['code'], elem['text']))

RelacaoCNPJ.write('Endereço:')
RelacaoCNPJ.write(' {0}, {1}, '.format(dic['logradouro'],
dic['numero']))
RelacaoCNPJ.write('{0}'.format(dic['complemento']))
RelacaoCNPJ.write(' {0}, {1}\n'.format(dic['municipio'],
dic['uf']))
RelacaoCNPJ.write('Telefone: {0}\n'.format(dic['telefone']))
RelacaoCNPJ.write('Email: {0}\n\n'.format(dic['email']))
RelacaoCNPJ.close()

except KeyError:
pass


if __name__ == '__main__':


if len(sys.argv) == 1 or sys.argv[1] in {'-h', '--help'}:
usage()

for listaCNPJ in sys.argv[1:]:
if not valida_cnpj(listaCNPJ):
print('CNPJ "{0}" tem formato inválido'.format(listaCNPJ))
else:
busca_cnpj(parse_input(listaCNPJ))


Quando vou consultar em lote o seguinte erro é exibido:
Traceback (most recent call last):
File "C:\Users\Fiscal\Desktop\CNPJ\CNPJ.py", line 110, in <module>
busca_cnpj(parse_input(listaCNPJ))
File "C:\Users\Fiscal\Desktop\CNPJ\CNPJ.py", line 60, in busca_cnpj
with opener.open(url) as fd:
File "C:\Users\Fiscal\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 532, in open
response = meth(req, response)
File "C:\Users\Fiscal\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 642, in http_response
'http', request, response, code, msg, hdrs)
File "C:\Users\Fiscal\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 570, in error
return self._call_chain(*args)
File "C:\Users\Fiscal\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 504, in _call_chain
result = func(*args)
File "C:\Users\Fiscal\AppData\Local\Programs\Python\Python36-32\lib\urllib\request.py", line 650, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 504: Gateway Time-out


  


2. Re: Erro Script Python

Lisandro Guerra
Lisandro

(usa Arch Linux)

Enviado em 22/02/2017 - 16:22h

O teu parser está preparado para receber e trabalhar com 1 CNPJ por vez, mas está recebendo toda a lista com os CNPJs .
Vais ter que iterar a lista para poder chamar tanto o parser como o requester.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts