web-dev-qa-db-fra.com

ImportXML avec XPath ne renvoie pas l'entrée d'une table

Utilisation de Google Sheets avec IMPORTXML pour extraire une information d’un site Web via XPath.

Voici le site (cliquez ici).

L'information spécifique que j'essaie d'extraire est le nombre Prix/Ventes (TTM) , c'est-à-dire . 2.97

Voici le XPath (je l'ai testé avec Google Chrome Extensions XPath Helper et XPather . travaux.):

//div[@id='audit-integrity'][1]/table/tbody/tr[10]/td[2]

Voici ma fonction Google Finance:

=IMPORTXML( "https://eresearch.fidelity.com/eresearch/evaluate/fundamentals/keyStatistics.jhtml?stockspage=keyStatistics&symbols=aapl" , "//div[@id='audit-integrity'][1]/table/tbody/tr[10]/td[2]")

La fonction ne fonctionne pas. Pourquoi?

3
thanks_in_advance

C'est à cause de <tbody>. Il n'y a pas de <tbody> dans la source HTML. Le navigateur le met là (seul; rien à voir avec JavaScript sur la page) car il pense qu'il devrait être là, selon les spécifications HTML.

Supprimez simplement /tbody du chemin:

=IMPORTXML( "https://eresearch.fidelity.com/eresearch/evaluate/fundamentals/keyStatistics.jhtml?stockspage=keyStatistics&symbols=aapl" , "//div[@id='audit-integrity'][1]/table/tr[10]/td[2]")

Et en général: quand XPath ne fonctionne pas, déboguez en supprimant tous les sélecteurs, puis ajoutez-les un à un jusqu'à la fin de la formule ...

4
user79865