Cómo consultar el Canal de Importación en Aduanas Perú automáticamente

Scraping para consultar el canal de una importación aduanera en python

Libretrias requeridas Requests


import requests
def consulta(data):
    rptaJson={}
    try:
        header={"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36",
                }
        
        sesion=requests.session()
        req=sesion.get("https://ww3.sunat.gob.pe/aduanas/informli/ildua.htm",headers=header,verify=False)
        
        if req.status_code==200:
            html=req.text
            pos=html.find("ModDate")
            posValue=html.find("value=",pos)
            poscomilla=html.find("\"",posValue+7)
            modDate=html[posValue+7:poscomilla]
            print(modDate)
            header={"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36",
                    "host":"ww3.sunat.gob.pe",
                    "origin":"https://ww3.sunat.gob.pe",
                    "referer":"https://ww3.sunat.gob.pe/aduanas/informli/ildua.htm",
                    "content-type":"application/x-www-form-urlencoded"
                    }
            parametros=data.split("-")
            regimen=parametros[0]
            aduana=parametros[1]
            anio=parametros[2]
            declaracion=parametros[3]
    
            payload={"n":regimen,
                    "codaduana":aduana,
                    "anoprese":anio,
                    "numecorre":declaracion,
                    "option":"una",
                    "%%ModDate":modDate,
                    "cadu":"",
                    "ndcl":"",
                    "codr":"",
                    "fano":"2001",
                    "accion":"",
                    "cod_adu":"",
                    "ann_dec":"",
                    "num_dec":"",
                    "token":"13"
                    }
            req=sesion.post("https://ww3.sunat.gob.pe/servlet/SgCDUI2",data=payload,headers=header,verify=False)
            if req.status_code==200:
                html=req.text
                pos=html.find("DUA(")
                if pos>-1:
                    posfin=html.find("))",pos+4)
                    datos=html[pos+4:posfin]
                    datos=datos.replace("'","").replace("&nbsp;","").replace("<b>","").replace("</b>","")
                    print(datos)
                    campos=datos.split(",")
                    print(campos)
  
                    canal=campos[13]
                    posmayor=canal.find(">")
                    posmenor=canal.find("<",posmayor+1)
                    if(posmayor>-1):
                        canal=canal[posmayor+1:posmenor]
                    rptaJson[declaracion]={"Aduana":campos[0],
                    "CodigoAduana":campos[1],
                    "Orden":campos[2],
                    "Declaracion":campos[11],
                    "FechaNumeracion":campos[12],
                    "Canal":canal,
                    
                    }
    
    except Exception as e:
        print("Error "+ str(e))
      
    return rptaJson
if __name__=="__main__":
    print(consulta("10-118-2026-369189"))

Comentarios

Entradas populares de este blog

Web Scraping en Argentina: búsqueda de personas por DNI paso a paso

¡Mira Cómo Obtengo Datos de un Vehículo Solo con la Placa! (Web Scraping)

Bot whatsapp con whatsapp-web.js y nodejs