Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

131
Visualizações
raspar datos de varias páginas en un bucle usando javascript

Estoy tratando de extraer datos de un sitio web que tiene varias páginas, el código funciona bien para una sola ejecución, pero cuando trato de ponerlo en un bucle, el sitio web se bloquea y Chrome dice que no tengo memoria. A continuación se muestra el javascript que estoy usando:

 // an XMLHttpRequest var xhr = null; var page = 1; function scrape() { // instantiate XMLHttpRequest object try { xhr = new XMLHttpRequest(); } catch (e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } // handle old browsers if (xhr == null) { alert("Ajax not supported by your browser!"); return; } // get city var city = document.getElementById("city").value; // get data xhr.onreadystatechange = function() { // only handle loaded requests if (xhr.readyState == 4) { if (xhr.status == 200) { // insert link into DOM some stuff } else alert("Error with Ajax call!"); } } while(xhr.responseText != ""done) { // construct URL var url = "scrape_data.php?city=" + city + "+" + page ; xhr.open("GET", url, true); xhr.send(null); page++; } }

y este es el backend correspondiente:

 // get the q parameter preg_match('/.*(?=\+)/',$_GET["city"],$city); preg_match('/(?<=\+).*/',$_GET["city"],$page); // scrape data from shiksha.com $string = @file_get_contents("http://www.shiksha.com/b-tech/colleges/b-tech-colleges-".urlencode($city)."-{$page}"); if($page === 1) { // counting total number of pages preg_match_all('/class=" linkpagination">/',$string,$result); $GLOBALS["pages"] = sizeof($result[0]); } else $GLOBALS["pages"]--; // passing the string for scraping data and storing in database if($GLOBALS["pages"]=== 0) print("loop");

ahora, ¿cómo hago un bucle a través de todas las páginas y también cómo verifico si todas las páginas han sido analizadas (condición dentro del bucle for)? Gracias de antemano por cualquier ayuda.

about 4 years ago · Santiago Trujillo
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda