2017-05-21 1 views
0

J'utilise le HTMLAgilityPack et fonctionne généralement bien, mais sur ce site Web particulier, le XPath renvoie un caractère nul lorsqu'il doit renvoyer une valeur. J'ai essayé XPath et aucun ne semble fonctionner. Si quelqu'un peut identifier le problème. Je tiens également à souligner que la table du site est dynamique si cela fait une différence.HTMLAgilityPack - XPath - Référence dynamique Table Null

J'ai également testé le XPath dans XPath Helper Chrome Add-on et il affiche la valeur correcte, mais retourne null dans HTMLAgilityPack.

string Url = "http://weather.deltixlab.com"; 
HtmlWeb web = new HtmlWeb(); 
HtmlDocument doc = web.Load(Url); 

string day1 = doc.DocumentNode.SelectSingleNode("//*[@id=\"free-data-table\"]/tbody/tr[1]/td[1]").InnerText; 

est Ci-dessous un extrait du HTML ainsi que le lien du site: http://weather.deltixlab.com

enter image description here

+0

Lorsque vous réduisez le bit XPath bit par bit depuis la fin, quel est le bit le plus long qui renvoie encore quelque chose? – Tomalak

Répondre

1

Je pense que votre problème en principe de fonctionnement page Web. Page charge le contenu dans la section d'accueil après le chargement via la prise Web.

Peut-être sera-t-il plus facile d'utiliser le contrôle webbrowser pour charger la page complètement et analyser les données via DOM?

Si une telle décision est acceptable, je peux écrire un petit code pour votre.

+0

Je vois donc le seul moyen est de rendre la page complètement et d'analyser la table via xpath. Si vous pouvez poster une solution qui pour une vitesse optimale comme maintenant, je pense que cette solution entraînera un retard dans le traitement. Non? – goodfella

+0

Oui. Dans le cas de webbrowser vous shoold faire un retard par vous-même. Par exemple 5 secondes. Est-ce bien? Si oui, je vais écrire. –

+0

3 secondes devrait être bien. Je regarde aussi d'autres solutions possibles en utilisant un navigateur sans tête comme selinium mais votre réponse devrait me pointer dans la bonne direction – goodfella