| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189 |
- <?php
- ob_start(); // Limpia el buffer por errores de salida
- // Permite un mayor tiempo de respuesta del socket
- ini_set('memory_limit', '-1');
- ini_set('display_errors', 1);
- ini_set('display_startup_errors', 1);
- error_reporting(E_ALL);
- $url = 'https://easyvent.solerpalau.com/series-info/595/192';
- /*$ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url); // Dirección URL a capturar
- curl_setopt($ch, CURLOPT_PROXY, $arrProxies[$i]['proxyAndPuerto']); // El proxy HTTP para enviar peticiones a través de tunel.
- curl_setopt($ch, CURLOPT_PROXYTYPE, $arrProxies[$i]['tipoProxy']); // Puede ser CURLPROXY_HTTP (por defecto), CURLPROXY_SOCKS4, CURLPROXY_SOCKS5, CURLPROXY_SOCKS4A o CURLPROXY_SOCKS5_HOSTNAME
- curl_setopt($ch, CURLOPT_TIMEOUT, 60); // Número máximo de segundos permitido para ejectuar funciones cURL
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); // Número de segundos a esperar cuando se está intentado conectar. Use 0 para esperar indefinidamente
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // "true" para seguir cualquier encabezado "Location: " que el servidor envíe como parte del encabezado HTTP (observe la recursividad, PHP seguirá tantos header "Location: " como se envíen, a no ser que la opción CURLOPT_MAXREDIRS esté establecida)
- //curl_setopt($ch, CURLOPT_MAXREDIRS, 10); // Número máximo de redirecciones HTTP a seguir. Use esta opción con CURLOPT_FOLLOWLOCATION
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // "true" para devolver el resultado de la transferencia como string del valor de curl_exec() en lugar de mostrarlo directamente
- $data = curl_exec($ch); // Ejecuta la sesión cURL que se le pasa como parámetro
- $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // Obtener información sobre una transferencia específica -> El último código de respuesta. A partir de PHP 5.5.0 y cURL 7.10.8, este es un alias heredado de CURLINFO_RESPONSE_CODE
- echo $arrProxies[$i]['proxyAndPuerto'].'<br>';
- echo $httpcode.'<br>';
- //echo $data;
- //echo curl_error($ch);
- curl_close($ch); // Cierra la sesión cURL
- exit;*/
- extraerTabla($url);
- function extraerTabla($url){
- $exito = false;
- $errorDescripcion = '';
- // Los servidores se obtuvieron de la página https://www.proxyscan.io/ ** Todos son de México
- $arrProxies = array(); // Lista de Proxies para realizar las peticiones
- //$arrProxies[0]['proxyAndPuerto'] = '187.188.168.57:9991'; // No funciona (puede servir para realizar pruebas del ciclo)
- //$arrProxies[0]['tipoProxy'] = CURLPROXY_SOCKS4;
- $arrProxies[0]['proxyAndPuerto'] = '190.9.54.24:5678';
- $arrProxies[0]['tipoProxy'] = CURLPROXY_SOCKS4;
- /*$arrProxies[1]['proxyAndPuerto'] = '187.216.90.46:5678';
- $arrProxies[1]['tipoProxy'] = CURLPROXY_SOCKS4;
- $arrProxies[2]['proxyAndPuerto'] = '201.148.28.17:5678';
- $arrProxies[2]['tipoProxy'] = CURLPROXY_SOCKS4;
- $arrProxies[3]['proxyAndPuerto'] = '187.189.81.246:4153';
- $arrProxies[3]['tipoProxy'] = CURLPROXY_SOCKS4;
- $arrProxies[4]['proxyAndPuerto'] = '187.217.39.66:5678';
- $arrProxies[4]['tipoProxy'] = CURLPROXY_SOCKS4;
- $arrProxies[5]['proxyAndPuerto'] = '177.242.150.6:5678';
- $arrProxies[5]['tipoProxy'] = CURLPROXY_SOCKS4;*/
- for ($i = 0; $i <= 0; $i++) {
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url); // Dirección URL a capturar
- curl_setopt($ch, CURLOPT_PROXY, $arrProxies[$i]['proxyAndPuerto']); // El proxy HTTP para enviar peticiones a través de tunel.
- curl_setopt($ch, CURLOPT_PROXYTYPE, $arrProxies[$i]['tipoProxy']); // Puede ser CURLPROXY_HTTP (por defecto), CURLPROXY_SOCKS4, CURLPROXY_SOCKS5, CURLPROXY_SOCKS4A o CURLPROXY_SOCKS5_HOSTNAME
- curl_setopt($ch, CURLOPT_TIMEOUT, 60); // Número máximo de segundos permitido para ejectuar funciones cURL
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60); // Número de segundos a esperar cuando se está intentado conectar. Use 0 para esperar indefinidamente
- curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // "true" para seguir cualquier encabezado "Location: " que el servidor envíe como parte del encabezado HTTP (observe la recursividad, PHP seguirá tantos header "Location: " como se envíen, a no ser que la opción CURLOPT_MAXREDIRS esté establecida)
- //curl_setopt($ch, CURLOPT_MAXREDIRS, 10); // Número máximo de redirecciones HTTP a seguir. Use esta opción con CURLOPT_FOLLOWLOCATION
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // "true" para devolver el resultado de la transferencia como string del valor de curl_exec() en lugar de mostrarlo directamente
- $data = curl_exec($ch); // Ejecuta la sesión cURL que se le pasa como parámetro
- $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // Obtener información sobre una transferencia específica -> El último código de respuesta. A partir de PHP 5.5.0 y cURL 7.10.8, este es un alias heredado de CURLINFO_RESPONSE_CODE
- curl_close($ch); // Cierra la sesión cURL
- if (($httpcode >= 200) && ($httpcode < 300)) {
- $contenido = $data;
- if ($contenido) {
- $tablaHTML = "<div class='section section-grey'>";
- $seccionGris = strstr($contenido, "section section-grey");
- $removeFooter = strstr($seccionGris, "section cookie-warning", true);
- $tablaHTML .= ("<div class=\" " . $removeFooter . "\" >");
- $tablaHTML .= "</div>";
- $exito = true;
- echo $tablaHTML;
- } else {
- $exito = false;
- }
- goto fin_extraerTabla;
- }else{
- $exito = false;
- }
- } // Fin del ciclo
- fin_extraerTabla :
- if($exito == false){
- if(empty($errorDescripcion)){
- echo "<p style='text-align: center;'>Los servidores proxy dejarón de funcionar. Por favor contacte con al administrador del sistema.</p>";
- }else{
- echo $errorDescripcion;
- }
- }
- }
- function extraerTabla_BKP($url)
- {
- /*echo $url.'<br><br>';
- exit;*/
- $exito = false;
- //for ($i = 0; $i <= 5; $i++) {
- $i = 1;
- $arrProxies[0] = '187.188.168.57:9991';
- $arrProxies[1] = '148.217.94.54:3128';
- $arrProxies[2] = '187.189.96.94:9991';
- $arrProxies[3] = '187.162.11.94:3128';
- $arrProxies[4] = '177.234.0.218:43173';
- $arrProxies[5] = '187.178.238.177:3629';
- $proxy = $arrProxies[$i];
- $proxy = explode(":", $proxy);
- $ch = curl_init($proxy[0]);
- curl_setopt($ch,CURLOPT_URL,$url);
- curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows NT 5.1; rv:31.0) Gecko/20100101 Firefox/31.0');
- curl_setopt($ch,CURLOPT_HTTPHEADER,
- array(
- 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8',
- //'Accept-Encoding: gzip, deflate, br',
- 'Accept-Language: es-MX,es;q=0.8,en-US;q=0.5,en;q=0.3',
- 'Connection: keep-alive',
- 'Cookie: _ga=GA1.2.821969284.1629478795; _hjid=3cb7741d-c042-4afc-929e-4f5118af6b39; _fbp=fb.1.1629478795375.600180933; __hstc=103515359.e581ce363a680b3a9efc57ba8ca11a0c.1629478795538.1629478795538.1629478795538.1; hubspotutk=e581ce363a680b3a9efc57ba8ca11a0c; __hssrc=1; _gcl_au=1.1.442740855.1629478796; ASP.NET_SessionId=2sv4h4h0b0yc4s5xullfgkt1; easyDuct_v2=true; __utma=170610228.821969284.1629478795.1629748529.1629752991.6; __utmc=170610228; __utmz=170610228.1629732566.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmb=170610228.3.10.1629752991; __utmt=1'
- )
- );
- curl_setopt($ch,CURLOPT_TIMEOUT, 10);
- curl_setopt($ch,CURLOPT_FOLLOWLOCATION, 1);
- curl_setopt($ch,CURLOPT_RETURNTRANSFER, 1);
- /*curl_setopt($ch, CURLOPT_TIMEOUT, 10);
- curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // Configura cURL para devolver el resultado como cadena
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Configura cURL para que no verifique el peer del certificado dado que nuestra URL utiliza el protocolo HTTPS*/
- $data = curl_exec($ch); // Establece una sesión cURL y asigna la información a la variable $data
- $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
- if ($httpcode >= 200 && $httpcode < 300) {
- /*$proxyN = 'tcp://' . $arrProxies[$i];
- $context = array(
- 'https' => array(
- 'proxy' => $proxyN,
- 'request_fulluri' => True,
- 'header'=> 'Cookie: _ga=GA1.2.821969284.1629478795; _hjid=3cb7741d-c042-4afc-929e-4f5118af6b39; _fbp=fb.1.1629478795375.600180933; __hstc=103515359.e581ce363a680b3a9efc57ba8ca11a0c.1629478795538.1629478795538.1629478795538.1; hubspotutk=e581ce363a680b3a9efc57ba8ca11a0c; __hssrc=1; _gcl_au=1.1.442740855.1629478796; ASP.NET_SessionId=2sv4h4h0b0yc4s5xullfgkt1; easyDuct_v2=true; __utma=170610228.821969284.1629478795.1629748529.1629752991.6; __utmc=170610228; __utmz=170610228.1629732566.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmb=170610228.3.10.1629752991; __utmt=1'
- ),
- );
- $context = stream_context_create($context);
- $contenido = file_get_contents($url, false, $context);*/
- $contenido = $data;
- if ($contenido) {
- /*echo $contenido;
- exit;*/
- $tablaHTML = "<div class='section section-grey'>";
- $seccionGris = strstr($contenido, "section section-grey");
- $removeFooter = strstr($seccionGris, "section cookie-warning", true);
- $tablaHTML .= ("<div class=\" " . $removeFooter . "\" >");
- $tablaHTML .= "</div>";
- $exito = true;
- echo $tablaHTML;
- } else {
- $exito = false;
- }
- goto fin_extraerTabla;
- }else{
- $exito = false;
- }
- //}
- fin_extraerTabla :
- /*if($exito == false){
- echo "<p style='text-align: center;'>El contenido no fue cargado correctamente, recargue la página.</p>";
- }*/
- curl_close($ch);
- }
|