[Résolu] Problème d'Xpath scraping ImportXML ?

Bonjour.

Je m’amuse à essayer de récupérer automatiquement des notations d’ICO sur ICObench, avec importXML.

Je ne comprends pas d’où vient mon erreur (j’ai un "N/A"qui s’affiche) dans ma formule.
J’ai récupéré le Xpath via Chrome (clic droit depuis la console) donc normalement cela devrait fonctionner

Exemple de page à scrapper : https://icobench.com/ico/Aclyd

Formule pour récupérer la note :
=IMPORTXML(« https://icobench.com/ico/Aclyd »; « //*[@id=‹ profile_header ›]/div/div[2]/div[1]/div/div[1]/div »)

Formule pour récupérer le nombre de votants : =IMPORTXML(« https://icobench.com/ico/Aclyd »; « //*[@id=‹ profile_header ›]/div/div[2]/div[1]/div/div[1]/small »)

Aucune ne fonctionne.

Merci du coup de main !

Hello,

quelles infos cherches tu ? Les xpaths ne sont pas très parlants.

Et bien je viens de me rendre compte en cliquant sur mon lien que j’avais mis une majuscule dans le nom du projet (Aclyde) qui rendait l’url erronée…
C’est bon, ca marche maintenant…

Par contre je n’arrive pas à le faire sur ce site (je voudrais récupérer les noms des projets) : https://beta.bounty0x.io/hosts/
=IMPORTXML(« https://beta.bounty0x.io/hosts/ »; « //*[@id=‹ AppFrame ›]/div[2]/div/div[1]/div/div[2]/a[1]/span[2] »)
C’est chargé en AJAX (et donc non compatible avec Spreadsheet) ?

Tu devrais plutôt scraper iconomist.com :wink:

Ahah.
:smiley:
Je pourrais combiner les deux pour avoir un double regard :slight_smile:

Bon, j’ai fait mon extract de bounty0x avec HurryScrap, que j’avais d’installé sur mon Chrome.
Je n’aurai pas les données mises à jour en temps réel, mais cela fonctionne quand même.

Si qq peut me confirmer que ce n’est pas possible d’importer les noms des projets depuis la page https://beta.bounty0x.io/hosts/ via IMPORT XML ce serait cool, comme ça je sais que je n’ai pas à essayer de continuer à faire fonctionner mon code :slight_smile:

Hello @jabric,

Effectivement, ne te fatigue pas tu ne vas pas pouvoir utiliser IMPORTXML pour importer depuis https://beta.bounty0x.io/hosts/, tout simplement parce que la donnée n’est pas présente dans le DOM de la page, mais chargée via du JavaScript, ou une API.

Si tu fais clique droit > afficher le code source :

A priori, il faut que tu passes par l’API…! :crab:

NB : si tu veux en savoir plus sur le DOM… JavaScript HTML DOM

D’expérience j’ai cru comprendre que la fonction importXML supporte mal tout XPath n’étant pas un XPath basique, dès qu’on écrit un XPath un peu plus élaboré, il n’aime pas et n’est pas capable de l’interpréter… :confused:

C’est @cebri le king du Xpath chelou de importXML :wink:

Merci, mais a priori le probleme vient donc du fait que le contenu soit chargé dynamiquement.
J’arrive à bidouiller un truc avec Webscrapper : pas très rapide, mais ca remplit la fonction.
Je n’ai aucune idée de comment passer par l’API, et probablement pas assez de temps libre pour m’y plonger :slight_smile:

+1 la dessus. Les xpath importxml sont simplissimes…dans votre cas, je vous recommande plutot de passer par l’API et la librairie importJson pour google sheet.

Pour info, leur API est super easy a choper, je t’envoie ca par MP @jabric .

1 « J'aime »

@jabric à mon avis, impossible d’échapper à un peu de code…

Si tu bidouilles un peu, tu devrais pouvoir trouver ton bonheur par ici (2654 stars :star2:)

Il y en a pour tous les codes ! :smile:

1 « J'aime »

De toute façon les ICO, c’est fini :wink:

En tout cas comme on les connaissait jusqu’à présent, c’est sur :slight_smile:

Quelques euros plus tard :scream::see_no_evil::speak_no_evil:

2 « J'aime »

J’ai installé la librairie, mais du coup j’ai le même problème, il me redit que l’application n’est pas autorisée…
J’imagine qu’il vérifie si la requête vient bien de son serveur ?

Tu ne pourras pas avec importxml/importjson, ils utilisent des cookies. Plus simplement, utilises Postman, interceptes la requete (chrome > dev tools > networks > copy) et rejoues la.

Si tu découvres Postman…prends le temps de découvrir, ce tool est une pure merveille.

@jabric, effectivement ils utilisent des cookies, notamment des clés d’API, impossible avec une requête GET basique depuis Google Sheet…

41

Postman est bien, sinon tu peux utiliser la console de Mozilla, ça permet de repasser des requêtes facilement, c’est le feu :fire::grin:

1 « J'aime »

Merci @cebri.
Je vais essayer de prendre du tmps pour découvrir Postman à l’occasion.

@SashaLobstr et je fais quoi une fois que j’ai cliqué sur « Rejouer » ?
Quand je clique ensuite de nouveau sur « rejouer » elle se lance, en OPTION au lieu de GET, mais je ne sais pas quoi faire par la suite :slight_smile:

http://docs.python-requests.org/en/master/ :wink: