Sélectionnez la valeur "src" avec XPath to HtmlAgilityPack

c# html-agility-pack xpath

Question

Je suis sur un processus de développement d'un moteur d'exploration. Mon programme explore des sites Web via Xpath avec HtmlAgilityPack. J'ai besoin d'obtenir des balises d'image src directement. Vous pouvez voir mon code simple ci-dessous qui ne fonctionne pas correctement, merci dans le conseil!

PS: S'il vous plaît ignorer "problème de caractère, les modèles XPath sont fournis par la base de données.

Agility.DocumentNode.SelectSingleNode("//img[@id="product_photo"]/@src");

Et c’est la ligne que j’ai besoin d’analyser (la partie *...* montre le bloc à extraire

<img id="product_photo" src="*/images/thumb/4400/10280/st.jpg*">

Certaines pages fournissent des images dans des balises méta afin que .Attributes["src"] ne fonctionne pas.

UPDATE: Vous pouvez voir ma requête et le résultat ici Question

Réponse populaire

Vous ne pouvez pas obtenir la valeur de "src" ni aucun autre attribut en utilisant:

Agility.DocumentNode.SelectSingleNode(yourXpath);

Juste en utilisant:

string s=Agility.DocumentNode.SelectSingleNode(yourXpath).value;

C'est parce que XPath ne peut pas retourner la valeur d'un attribut par SelectSingleNode () func dans la classe HtmlAgilityPack. Vous devez donc utiliser SelectSingleNode(yourXpath).value ou utiliser Regex après le pharsing pour obtenir uniquement le "src" sans le texte extérieur.




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi