I'm trying to get information in an HTML message

55 Views Asked by At

in the head part within the html, there are 4 pieces of information that I wanted to get using cheerio, but I tried everything and it is always returning an invalid value, in this case returning NOTHING in the javascript code it has the 4 options that I am trying to get from the html, if possible someone can help I would appreciate it enter image description here

my code

    const axios = require("axios");
const cheerio = require('cheerio');

const headers = {
    'Cache-Control': 'max-age=0',
    'Content-Type': 'application/x-www-form-urlencoded',
    'Cookie': 'PHPSESSID=0cpr6cn0mdqhab6v6vvdi0ifbm',
    'Host': 'sistemas.viareal.net',
    'Origin': 'https://sistemas.viareal.net',
    'Referer': 'https://sistemas.viareal.net/utp-dev/index.php?ti=pl',
    'Sec-Ch-Ua': '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"',
    'Sec-Ch-Ua-Mobile': '?0',
    'Sec-Ch-Ua-Platform': '"Windows"',
    'Sec-Fetch-Dest': 'document',
    'Sec-Fetch-Mode': 'navigate',
    'Sec-Fetch-Site': 'same-origin',
    'Sec-Fetch-User': '?1',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
};

const minhaFuncaoAssincrona = async () => {
    try {
        const response = await axios.post('https://sistemas.viareal.net/utp-dev/index.php?s=pl', {
            cep: '93285310',
            numcasa: '85'
        }, { headers, timeout: 160000 });

        const extrairInformacoes = (html) => {
            const $ = cheerio.load(html);

            const viabilidade = $('font:contains("Rede disponível no endereço pesquisado")').length > 0;

            if (viabilidade) {
                console.log('Há viabilidade no endereço pesquisado.');

                const enderecoProspectado = $('td:contains("Endereço prospectado:")').next().find('b').text().trim();
                const ctoPreferencial = $('b:contains("CTO Preferencial:")').closest('td').next().text().trim();
                const ctoAlternativa1 = $('b:contains("CTO Alternativa 1:")').closest('td').next().text().trim();
                const ctoAlternativa2 = $('b:contains("CTO Alternativa 2:")').closest('td').next().text().trim();

                console.log('Endereço Prospectado:', enderecoProspectado);
                console.log('CTO Preferencial:', ctoPreferencial);
                console.log('CTO Alternativa 1:', ctoAlternativa1);
                console.log('CTO Alternativa 2:', ctoAlternativa2);

            } else {
                console.log('Não há viabilidade no endereço pesquisado.');
            }
        };

        extrairInformacoes(response.data);

    } catch (error) {
        console.error('Erro na solicitação:', error.message);
    }
};

minhaFuncaoAssincrona();

html response

<!DOCTYPE html><html>   <head>      <link rel='SHORTCUT ICON' href='knife.png'/>        <style>            /* Set the size of the div element that contains the map */            #map {                height: 500px;  /* The height is 400 pixels */                width: 700px;  /* The width is the width of the web page */            }        .blink {
    animation: blinker 0.8s linear infinite;
    color: #cc0000;
    font-size: 12px;
    font-weight: bold;
    font-family: sans-serif;
}
@keyframes blinker {
    0% {
    opacity: 0;
   }
}        </style>       <Title>UTP - Pinga Lote</title><style type="text/css">
body {color: #737373; font-size: 10px; font-family: verdana;}

textarea,input,select {
background-color: #FDFBFB;
border: 1px solid #BBBBBB;
padding: 2px;
margin: 1px;
font-size: 14px;
color: #808080;
}

a, a:link, a:visited, a:active { color: #1212FF; text-decoration: none; font-size: 14px; }
a:hover { border-bottom: 1px dotted #c1c1c1; color: #AAAAAA; }
img {border: none;}
td { font-size: 14px; color: #7A7A7A; }
</style>


</head>    <body><table border=0 width=100%><tr><td><center><table border=0 bgcolor=#eeeeee width=100%><tr><td valign=center colspan=14 bgcolor=#FF0D5D><font color=white><center>UTP - Versão 0.23 - Bem vindo [email protected]. <a href=index.php?s=logout><font color=white>Deslogar.</a></td></tr><tr><td height=80 valign=center width=200><center><a href=index.php?ti=pl><img src=pingalote.png><br><font face='Arial' color='black' size='2'>Pinga Lote</a></td><td height=80 valign=center width=200><center><a href=index.php?s=ctoProx><img src=ctoprox.png><br><font face='Arial' color='black' size='2'>CTO Próxima</a></td><td height=80 valign=center width=200><center><a href=index.php?ti=ts><img src=timesheet.png><br><font face='Arial' color='black' size='2'>TimeSheet</a></td><td height=80 valign=center width=200><center><a href=index.php?s=valid1><img src=valida.png><br><font face='Arial' color='black' size='2'>Valida CTO</a></td></td></tr></table>        <style>            /* Set the size of the div element that contains the map */            #map {                height: 400px;  /* The height is 400 pixels */                width: 600px;  /* The width is the width of the web page */            }        </style><center><table border=0 bgcolor=#eeeeee width=100%><tr><td colspan=2 bgcolor=#FF0D5D><font color=white><center>Informações de Viabilidade</td><tr><td valign=top><center><center><table border=0 bgcolor=#eeeeee><tr><td bgcolor=#cccccc><center><font face='arial' color='black' size='2'>Dados da pesquisa</td></tr><tr><td><br><font face='arial' color='black' size='2'>Endereço prospectado:<br> <b>Rua Bandeirantes, 85 Liberdade Esteio/RS</b> <br><br><font color=green><b><center>Rede disponível no endereço pesquisado<br><br></b></font><b>CTO Preferencial:</b> [EIO-024-2-2/C:16/O:0/D:16]<b> GPON</b> FTTH <br><font color=black>Distância em linha reta: 44 m  <font color=black> <font color=black>Pelo arruamento: 37 m <font color=black><br>R. Bandeirantes, 48 - Liberdade, Esteio - RS, 93285-310, Brazil<br><br><b>CTO Alternativa 1:</b> [EIO-024-2-3/C:16/O:0/D:16]<b> GPON</b>  FTTH <br><font color=black>Distância em linha reta: 74 m   <font color=black> <font color=black>Pelo arruamento: 206 m  <font color=black><br>Rua 7 de Setembro, 122 - Liberdade, Esteio - RS, 93285-280, Brazil<br><br><b>CTO Alternativa 2:</b> [EIO-024-2-4/C:16/O:0/D:16]<b> GPON</b>  FTTH <br><font color=black>Distância em linha reta: 119 m   <font color=black> <font color=black>Pelo arruamento: 191 m  <font color=black><br>R. Império, 245 - Liberdade, Esteio - RS, 93285-300, Brazil<br><br><a href=index.php?s=pl&oc=true&lat=-29.8570493&lng=-51.1626037>Fazer essa pesquisa novamente considerando ocupação de portas.</a></td></tr></table></td><td width=60%>    <!--The div element for the map -->    <div id='map'></div>    <script>        function initMap() {var prospect = {lat: -29.8570493, lng: -51.1626037};
var ctoProx = {lat: -29.85685456114, lng: -51.16300520971};
var ctoProx2 = {lat: -29.85759455392, lng: -51.16303747274};
var ctoProx3 = {lat: -29.85617002886, lng: -51.16190663742};
var ctoProx4 = {lat: -29.85797213144, lng: -51.16421839478};
var ctoProx5 = {lat: -29.85522027068, lng: -51.16365481213};
var cto = {lat: -29.76780141496, lng: -51.15253019817};
var map = new google.maps.Map(document.getElementById('map'), {zoom: 17, center: prospect, mapTypeId: 'hybrid', styles:  [
{
"elementType": "geometry",
"stylers": [
{
"color": "#ebe3cd"
}
]
},
{
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#523735"
}
]
},
{
"elementType": "labels.text.stroke",
"stylers": [
{
"color": "#f5f1e6"
}
]
},
{
"featureType": "administrative",
"elementType": "geometry",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "administrative",
"elementType": "geometry.stroke",
"stylers": [
{
"color": "#c9b2a6"
}
]
},
{
"featureType": "administrative.land_parcel",
"elementType": "geometry.stroke",
"stylers": [
{
"color": "#dcd2be"
}
]
},
{
"featureType": "administrative.land_parcel",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#ae9e90"
}
]
},
{
"featureType": "landscape.natural",
"elementType": "geometry",
"stylers": [
{
"color": "#dfd2ae"
}
]
},
{
"featureType": "poi",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "poi",
"elementType": "geometry",
"stylers": [
{
"color": "#dfd2ae"
}
]
},
{
"featureType": "poi",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#93817c"
}
]
},
{
"featureType": "poi.park",
"elementType": "geometry.fill",
"stylers": [
{
"color": "#a5b076"
}
]
},
{
"featureType": "poi.park",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#447530"
}
]
},
{
"featureType": "road",
"elementType": "geometry",
"stylers": [
{
"color": "#f5f1e6"
}
]
},
{
"featureType": "road",
"elementType": "labels.icon",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "road.arterial",
"elementType": "geometry",
"stylers": [
{
"color": "#fdfcf8"
}
]
},
{
"featureType": "road.highway",
"elementType": "geometry",
"stylers": [
{
"color": "#f8c967"
}
]
},
{
"featureType": "road.highway",
"elementType": "geometry.stroke",
"stylers": [
{
"color": "#e9bc62"
}
]
},
{
"featureType": "road.highway.controlled_access",
"elementType": "geometry",
"stylers": [
{
"color": "#e98d58"
}
]
},
{
"featureType": "road.highway.controlled_access",
"elementType": "geometry.stroke",
"stylers": [
{
"color": "#db8555"
}
]
},
{
"featureType": "road.local",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#806b63"
}
]
},
{
"featureType": "transit",
"stylers": [
{
"visibility": "off"
}
]
},
{
"featureType": "transit.line",
"elementType": "geometry",
"stylers": [
{
"color": "#dfd2ae"
}
]
},
{
"featureType": "transit.line",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#8f7d77"
}
]
},
{
"featureType": "transit.line",
"elementType": "labels.text.stroke",
"stylers": [
{
"color": "#ebe3cd"
}
]
},
{
"featureType": "transit.station",
"elementType": "geometry",
"stylers": [
{
"color": "#dfd2ae"
}
]
},
{
"featureType": "water",
"elementType": "geometry.fill",
"stylers": [
{
"color": "#b9d3c2"
}
]
},
{
"featureType": "water",
"elementType": "labels.text.fill",
"stylers": [
{
"color": "#92998d"
}
]
}
]
});
var infoWindow = new google.maps.InfoWindow({content: '', position: prospect});var prospectIcon = {  url: 'pin18-yellow.png',labelOrigin:  new google.maps.Point(9, -2), size: new google.maps.Size(18, 26),origin: new google.maps.Point(0, 0),anchor: new google.maps.Point(9, 26)};
var ctopIcon = {  url: 'selecionado.png',labelOrigin:  new google.maps.Point(0, -4), size: new google.maps.Size(20, 20),origin: new google.maps.Point(0, 0),anchor: new google.maps.Point(20, 20)};
var marker0 = new google.maps.Marker({position: prospect, map: map, label: 'Cliente', draggable:true, icon: prospectIcon});
function handleEvent(event) {
infoWindow = new google.maps.InfoWindow({position: event.latLng});
var NovoP = '<a href=index.php?s=pl&latP=' +  event.latLng.lat() + '&lngP=' +  event.latLng.lng() + '>Nova busca aqui</a>';                                 
infoWindow.setContent(NovoP);
infoWindow.open(map);
}marker0.addListener('dragend', handleEvent);var marker1 = new google.maps.Marker({position: ctoProx, map: map, icon: ctopIcon, label: 'CTO Preferencial[16/16]'});
var marker2 = new google.maps.Marker({position: ctoProx2, map: map, icon: ctopIcon, label: 'CTO Alternativa 1[16/16]'});
var marker3 = new google.maps.Marker({position: ctoProx3, map: map, icon: ctopIcon, label: 'CTO Alternativa 2[16/16]'});
var cto = {lat: -29.85685456114, lng: -51.16300520971};
var ctoCircle = new google.maps.Circle({
                  strokeColor: '#ff0000',
                  strokeOpacity: 0.2,
                  strokeWeight: 0.2,
                  fillColor: '#FF0000',
                  fillOpacity: 0.25,
                  map: map,
                  center: cto,
                  radius: 150,
                  zIndex: 5
              });
var cto = {lat: -29.85759455392, lng: -51.16303747274};
var ctoCircle = new google.maps.Circle({
                  strokeColor: '#ff0000',
                  strokeOpacity: 0.2,
                  strokeWeight: 0.2,
                  fillColor: '#FF0000',
                  fillOpacity: 0.25,
                  map: map,
                  center: cto,
                  radius: 150,
                  zIndex: 5
              });
var cto = {lat: -29.85617002886, lng: -51.16190663742};
var ctoCircle = new google.maps.Circle({
                  strokeColor: '#ff0000',
                  strokeOpacity: 0.2,
                  strokeWeight: 0.2,
                  fillColor: '#FF0000',
                  fillOpacity: 0.25,
                  map: map,
                  center: cto,
                  radius: 150,
                  zIndex: 5
              });
}
</script>
<script async defer src="https://maps.googleapis.com/maps/api/js?key=AIzaSyD-D6oUG0QtWftzZ6ZOLfcKA6_zz3kQjhs&callback=initMap&libraries=visualization">        </script></td></tr></table>    </body>
</html>
0

There are 0 best solutions below