Je dois extraire le prix de ce site Web en utilisant importXML sur Google Spreadsheets.
Voici un produit https://en-sa.wadi.com/Apple-iphone-6s-16-gb-4g-rose-gold-with-facetime-61616.html
Le problème est qu’ils utilisent AngularJS, la méthode typique ne fonctionne donc pas.
C'est ce que j'utilisais plus tôt, mais cela ne fonctionne plus.
=REGEXEXTRACT(REGEXREPLACE(ImportXML("https://en-sa.wadi.com/sony-xperia-z3-16-gb-4g-lte-black-dual-sim-355.html", "//div[@class='info-module other-sellers']//p"), "{{ctrl.selectedSupplier.suppliers.length-1}}", ""),"[0-9]+")
Lorsque les données que vous recherchez sont dans un script, vous pouvez obtenir tout le contenu du script avec xPath //script
, joindre les résultats (pour que vous n'ayez pas à compter sur le script en tant que 7ème ou 11ème dans le source), et analyser les résultats avec regexextract
. La formule suivante renvoie 2447 à partir de maintenant:
=regexextract(regexextract(join(" ", IMPORTXML("https://en-sa.wadi.com/Apple-iphone-6s-16-gb-4g-rose-gold-with-facetime-61616.html", "//script")), """offerPrice"":\d+"), "\d+")
Ici, la première expression régulière """offerPrice"":\d+"
correspond à "offerPrice":2447
(le caractère de citation est doublé dans la chaîne). Le second regexextract
ne conserve que le numéro 2447.
Ce qui précède suppose que "offerPrice" est ce que vous voulez. Pour extraire le prix normal, utilisez plutôt """price"":\d+"
.