Python Requests - erro socket e outros

0 respostas
L

Galera, vamos lá.

A empresa que eu trabalho usa um sistema web para fazer vistorias em veículos e disponibiliza APIs para integração. No sistema web não é possível baixar todos os laudos de vistoria de uma vez, então estamos tentando usar uma API pra isso. Como queremos baixar todas as antigas, fizemos:

  1. uma função que cria uma lista com um intervalo de datas:

    def rangeData():
    
    dRan = pd.date_range(start=2020-09-10, end=2020-09-16)
    
    res = dRan.strftime(%Y/%m/%d)
    
    return res
    
  2. outra função que percorre a lista anterior e cria um dicionário com todas as informações das vistorias realizadas em cada data:

    def rangeVist(res):
    
    for data in res:
    
    url = <a href="https://apivex2.vexsoft.com.br/vistorias/">https://apivex2.vexsoft.com.br/vistorias/</a> + tokenbh + ‘/’ + data + ‘’
    
    listaVistorias = requests.get(url)
    
    jsonVistorias = listaVistorias.text
    
    jsonManip = json.loads(jsonVistorias)
    
    time.sleep(100)
    
    return jsonManip
    
  3. uma última função que percorre esse dicionário e, primeiro, cria uma nova lista apenas com os IDs das vistorias e, depois, percorre a lista de IDs e baixa o pdf de cada vistoria:

    def baixaPdf(jsonManip):
    listAux = []
    listData = []

    for vistoria in jsonManip['data']:
         listAux.append(vistoria['id'])
         listData.append(vistoria['data'])
    
     for id, data in zip(listAux, listData):
         varId = id
         varData = data.strftime('%Y-%m-%d')
         url = 'https://api.vexsoft.com.br/empresa/' + tokenbh + '/vistorias/' + varId + '/pdf'
         response = requests.get(url)
         with open('Vistoria-' + varId + '-' + varData + '.pdf', 'wb') as f:
             f.write(response.content)
         time.sleep(100)
    

Porém, ao executar recebo os erros abaixo:

Traceback (most recent call last):
File “C:\Users\lorrane.ramos\PycharmProjects\integravex\venv\lib\site-packages\urllib3\connection.py”, line 159, in _new_conn
conn = connection.create_connection(
File “C:\Users\lorrane.ramos\PycharmProjects\integravex\venv\lib\site-packages\urllib3\util\connection.py”, line 61, in create_connection
for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM)
:
File “C:\Users\lorrane.ramos\AppData\Local\Programs\Python\Python38-32\lib\socket.py”, line 918, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11001] getaddrinfo failed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File C:\Users\lorrane.ramos\PycharmProjects\integravex\venv\lib\site-packages\urllib3\connectionpool.py, line 670, in urlopen

httplib_response = self._make_request(

File C:\Users\lorrane.ramos\PycharmProjects\integravex\venv\lib\site-packages\urllib3\connectionpool.py, line 381, in _make_request

self._validate_conn(conn)

File C:\Users\lorrane.ramos\PycharmProjects\integravex\venv\lib\site-packages\urllib3\connectionpool.py, line 978, in _validate_conn

conn.connect()

File C:\Users\lorrane.ramos\PycharmProjects\integravex\venv\lib\site-packages\urllib3\connection.py, line 309, in connect

conn = self._new_conn()

File C:\Users\lorrane.ramos\PycharmProjects\integravex\venv\lib\site-packages\urllib3\connection.py, line 171, in _new_conn

raise NewConnectionError(

urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x0A1E7568>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed

Sobre o Erro 11001, achei num outro fórum que deve fazer o import do socket antes e colocar a url e a porta, mas retornou o mesmo erro.

Criado 18 de setembro de 2020
Respostas 0
Participantes 1