Grande Quantité d'appels "IMPORTXML" ? solution(s) alternative(s) ?
d'ailleurs je n'ai que 8 correspondance sur les 10
function link(){
var url = 'https://realt.co/fr/place-de-marche/'
var classeur = SpreadsheetApp.getActiveSpreadsheet();
var feuille = classeur.getSheetByName('link');
var result = []
var fetchedUrl = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
if (fetchedUrl) {
var html = fetchedUrl.getContentText().replace(/(\r\n|\n|\r|\t| )/gm, "")
if (html.length) {
var links = [...html.matchAll(/"(https:\/\/realt.co\/product\/[^"]+\/)"/g)].flat()
Logger.log(links)
}
result.push(links)
}
feuille.getRange(1, 1, result[0].length).setValues(transpose(result))
}
function transpose(a){
return Object.keys(a[0]).map(function (c) { return a.map(function (r) { return r[c]; }); });
}il me manque ces deux la ( encore un mystère )
<a href="https://realt.co/product/19268-eureka-st-detroit-mi-48234/"
<a href="https://realt.co/product/1389-bird-ave-birmingham-mi-48009/"EDIT : j'ai trouvé avec les log.
il faut que j'intervienne ici mais comment ?
[...]
var fetchedUrl = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
if (fetchedUrl) {
var html = fetchedUrl.getContentText().replace(/(\r\n|\n|\r|\t| )/gm, "")
[...]EDIT : j'ai trouvé avec les log.
![]()
il faut que j'intervienne ici mais comment ?
[...] var fetchedUrl = UrlFetchApp.fetch(url, { muteHttpExceptions: true }); if (fetchedUrl) { var html = fetchedUrl.getContentText().replace(/(\r\n|\n|\r|\t| )/gm, "") [...]
que nenni ... les log c'est une chose, et en effet tu peux être tronqué ici comme lorsque tu envoies le tout dans une cellule
mais la variable html reste entière dans le script
tu peux le voir en éditant le début et la fin de la variable avec
Logger.log(html.substring(0,500))
Logger.log(html.substring(html.length-500,html.length))Bonjour,
que nenni ... les log c'est une chose, et en effet tu peux être tronqué ici comme lorsque tu envoies le tout dans une cellule
Oui je pensais avoir répondu a moi-même ! = ces 2 autres éléments sont disponible sur cette page lorsque je suis connecté sur le site avec mes ID.
et la je cherche comment obtenir celle en "previous properties" mais j'y arrive pas du tout
je perds parfois pied dans tes pérégrinations ! peux-tu donner l'url et me dire comment on accèderait "normalement" (pas via google sheet) aux "previous properties" ?
je perds parfois pied dans tes pérégrinations !
Je viens d'apprendre un nouveau mot
peux-tu donner l'url et me dire comment on accèderait "normalement" aux "previous properties" ?
cela se produit quand on appuie sur
<div class="back-catalog-modal-open-container-2">
<button class="back-catalog-modal-open">
Previous Properties </button>
</div>avec une fonction asynchrone
j'ai fait le tour des adresses url et notamment des json, mais je n'ai rien trouvé pour le moement !
Bonjour bonjour,
j'ai 2 choses qui me tracasse encore... ( et promis je vais pas tout déballer en même temps sinon on va rien comprendre
je n'arrive pas a faire le lien et sortir quelque chose de propose sur une page Sheets pour liée ces 2 scripts.
Celui-ci pour lequel j'obtiens les liens
function link(){
var url = 'https://realt.co/fr/place-de-marche/'
var classeur = SpreadsheetApp.getActiveSpreadsheet();
var feuille = classeur.getSheetByName('link');
var result = []
var fetchedUrl = UrlFetchApp.fetch(url, { muteHttpExceptions: true });
if (fetchedUrl) {
var html = fetchedUrl.getContentText().replace(/(\r\n|\n|\r|\t| )/gm, "")
if (html.length) {
var links = [...html.matchAll(/"(https:\/\/realt.co\/product\/[\s\S\w]+?)"/g)].flat()
Logger.log(links)
}
result.push(links)
}
feuille.getRange(1, 1, result[0].length).setValues(transpose(result))
}
function transpose(a){
return Object.keys(a[0]).map(function (c) { return a.map(function (r) { return r[c]; }); });
}et celui-ci pour lequel j'aimerai utiliser le script juste au dessus pour me servir de la fonction avec tout les liens trouvé.
function myFunctionHighlights(){
var data = gatDataAsJsonHighlights('https://realt.co/product/16851-16881-greenfield-rd-detroit-mi-48235/')
Logger.log ([data['assetAnnualReturn']])
}
function gatDataAsJsonHighlights(marketplaceLink) {
var fetchedUrl = UrlFetchApp.fetch(marketplaceLink, { muteHttpExceptions: true });
if (fetchedUrl) {
var html = fetchedUrl.getContentText().replace(/(\r\n|\n|\r|\t| )/gm, "")
if (html.length) {
var json = {}
var section = html.match(/(<h3 class="blue-title">Property Highlights<\/h3>(.*)<!-- End of Investor ID -->)/g)[0]
var sousSections = section.match(/<li class[\s\S\w]+?<\/li>/g)
sousSections.forEach(function(elem){
var classe = elem.match(/class="([^"]+)"/)[1]
var donnee = elem.match(/<span class="data">([^<]+)</)[1]
json[classe] = donnee
})
return (json)
}
}
}le rendu à titre d'exemple : (même si les doublons des liens ne me conviennent pas, j'y reviendrais après.. chaque chose en son temps…)
bonne journée ! et merci !
