var result = []; for(var i =1; i <= 20; i++){ var url = 'https://example.com/page/' var resp = UrlFetchApp.fetch(url, options).getContentText(); var $ = Cheerio.load(resp); var jobList = $(".views-field.views-field-title > a"); for(let i = 0; i < jobList.length; i++) { // console.log(jobList[i].getAttribute("href")) var jobUrl = 'https://example.com' + /href="(.+?)">/.exec(jobList[j])[1]; var data = scrapeJobDetails(jobUrl); if(data != null){ result.push(...data); } } } var sheet = ss.getSheetByName('Sheet1'); sheet.getRange('A2:Z').clearContent(); sheet.getRange(sheet.getDataRange().getLastRow() + 1, 1, result.length, result[0].length).setValues(result); }No sé dónde me estoy equivocando. Quiero extraer todas las direcciones URL de una clase. a continuación se muestra la etiqueta de clase de la página web
<td class="views-field views-field-title"> <a href="xxxxxxx" class="cat-job-rate recruiter-colorbox-processed"> xxxxxx </a><br> <span class="job-label">Organization:</span> xxxxx | <span class="job-label">xxxxxx:</span> xxxx | <span class="job-label">xxxx:</span> xxxxx </td>Hay varias cosas mal con su código. Eliminé algunos bucles for que no eran necesarios y reestructuré su código a lo que creo que está tratando de hacer. Supongo que tu respuesta también se está cargando correctamente. Este código recopilará sus URL en una matriz y luego revisará cada URL en su matriz para ejecutar su función scrapeJobDetails .
Asegúrese de recopilar la información correcta antes de agregar su código de hojas de Google.
var result = []; var url = 'https://example.com/page/'; var resp = UrlFetchApp.fetch(url, options).getContentText(); var $ = Cheerio.load(resp); var jobList = $(".views-field.views-field-title > a"); var urls = jobList.map(function() {return $(this).attr('href');}).toArray(); // debug code - outputs the urls it collected console.log(urls); for (let i = 0; i < urls.length; i++) { var data = scrapeJobDetails(urls[i]); if (data != null) { result.push(...data); } }