Je parse une table HTML à l'aide de J'ai bouclé par le code, mais je ne peux pas comprendre où je vais mal. P> html: p> C # code> et
htmlagilitypack code> et tous les éléments
td code> sont renvoyés pour chaque ligne. Il obtient les premier et 3ème et 4ème, mais manque le 2nd un.
//set the url we are interested in
string urlstring =
"http://www.jerseyairport.com/flight/Pages/arrivals.aspx";
//use HTML Agilitypack to do the rest
HtmlWeb web = new HtmlWeb();
HtmlDocument document = web.Load(urlstring);
foreach (HtmlNode flightdiv in
document.DocumentNode.SelectNodes("//table[@id='airport" + "arrivals"
+ "']/tbody//tr"))
{
foreach (HtmlNode col in flightdiv.SelectNodes("td"))
{
System.Diagnostics.Debug.WriteLine(col.InnerText);
}
}
Le site Web n'a pas de colonne pour ezy891 td> code>. Où avez-vous eu cette information?
0
1 commentaires
0
2 commentaires
0
0 commentaires
Votre URL est fausse, utilisez
https://www.jerseyairport.com/flight/pages/arrivales.aspx code>. Si vous utilisez celui que vous avez ici, il vous redirigera vers une autre page avec moins de colonnes.
Toutes mes excuses, je dois manquer quelque chose. J'utilise le site JerseyArport.com/flight/PAGES/arrivales.aspx . Il a 4 colonnes Sched./flight No./origin/Status. Il renvoie Sched./Origin/Status. I.e. Cela manque le deuxième numéro de vol
3 Réponses :
votes
Je viens de vérifier le site Web, il n'y a pas de deuxième colonne dans cette table, votre code fonctionne correctement p>
Votre URL mise à jour est toujours renvoyée à https://www.jerseyAirport.com/pages/ Default.aspx Qui n'a pas le numéro de vol p>
Désolé, mais il a 4 colonnes. Pourquoi ne puis-je pas obtenir la deuxième colonne?
votes
Y a-t-il une raison particulière d'utiliser HTMLagILityPack?
Je vous ai laissé un code de travail avec la bibliothèque de sélénium. J'ai utilisé cette 2 bibliothèques "openqa.selenium.chrome" et "openqa.selenium", assurez-vous simplement que la version de votre chrome est compatible une. P> xxx pré>
sortie: p> xxx pré> p>
Y a-t-il des avantages dans l'utilisation de sélénium sur HTMLagilityPack? En outre, votre code ne fournit toujours que 3 colonnes. Il manque le numéro de vol.
Désolé, vous avez raison, j'ai copié la première URL au lieu de la seconde. Changer de URL pour " JerseyAirport.com/flight/PAGES/arrivales.aspx "Et vous obtiendrez également le numéro de vol n ° Sélénium peut être plus lent si vous devez collecter une énorme quantité d'informations (environ 200 éléments en boucle sur les propriétaires comme des webelements un par un). Cependant, à mon avis, il est plus sympathique que HTMLagilityPack et ce problème peut être résolu d'abord de fonctionner avec les attributs en tant que chaîne, puis à la recherche de l'iwebelement correct.
votes
Merci pour toutes les réponses fournies. La réponse était assez simple. J'utilisais http://www.jerseyairport.com/flight/pages/arrivales.aspx dans l'adresse Web plutôt que https://www.jerseyAltPort.com/ Vol / Pages / Arrivales.aspx . Dès que j'ai corrigé que cela fonctionnait bien. Merci encore p>
Articles qui pourrait vous intéresser :
Calculer la différence dans l'échelle d'évaluation alphabétiqueIgnorer la propriété de l'interface utilisateur Swagger
Comment détruire les éléments dynamiques du panneau dans le script Unity C #
Entity Framework Core 3.1 avec NetTopologySuite.Geometries.Point: SqlException: la valeur fournie n'est pas une instance valide de la géographie du type de données