Liebe Freunde, ich möchte den Text å¹³å ‡3.6 星
aus diesem aus amazon.cn å¹³å ‡3.6 星
Code extrahieren.
<div class="content"><ul>
<li><b>用户评分:</b>
<span class="crAvgStars" style="white-space:no-wrap;">
<span class="asinReviewsSummary" ref="dp_db_cm_cr_acr_pop_" name="B004GUSIKO">
<a>
<span class="swSprite s_star_3_5 " title="å¹³å‡3.6 星">
<span>å¹³å‡3.6 星</span>
</span>
</a>
Meine Frage ist der Span-Klassen-Tag-Wert "s_star_3_5 "
sich von der Bewertungsebene des Kunden unterscheidet und dynamisch angehängt wird. Also versuche ich doc.DocumentNode.SelectSingleNode(" //span[@class='swSprite']").InnerText
oder //span[@class='swSprite s_star_3_5 ']
, aber das Ergebnis ist ein Fehler oder nicht was mein Wunsch!
Irgendwelche Vorschläge?
Zunächst empfehle ich Ihnen, den Wert von doc.DocumentNode.OuterHtml
in einer lokalen .html
Datei zu speichern und zu doc.DocumentNode.OuterHtml
, ob der Code, den Sie erhalten, dieser Code ist. Die Sache ist, dass Sie manchmal mit HtmlAgilityPack eine Website analysieren, aber das allererste Problem ist, dass Sie das gültige HTML nicht korrekt erhalten. Vielleicht erhalten Sie einen 404-Fehler oder eine Umleitung usw.
Ich //span[@class='swSprite s_star_3_5 ']
weil ich //span[@class='swSprite s_star_3_5 ']
und korrekt funktioniert habe.
Das war das Problem in den folgenden Fragen:
Wenn das nicht hilft, poste den HTML Code und ich helfe dir;)
Das funktioniert für mich:
HtmlDocument doc = new HtmlDocument();
doc.Load(myHtml);
HtmlNode node = doc.DocumentNode.SelectSingleNode("//span[starts-with(@class, 'swSprite')]");
Console.WriteLine("Text=" + node.InnerText.Trim());
und Ausgänge
å¹³å‡3.6 星
Hinweis: Ich verwende die XPATH Starts-with-Funktion .