我必须写一个网络刮刀。我的php页面是:
<a href="Something.php">
<div class="SPECIFIEDCLASS" title="other something">
</div>
</a>
到目前为止我写的是:
var diiv = doc.DocumentNode.SelectNodes("//a/div[@class='SPECIFIEDCLASS']");
var hrefLiist = diiv.Select(q => q.GetAttributeValue("href", "not found")).ToList()
但它不起作用。
答案 0 :(得分:1)
您的XPath表达式会在div
个标记中选择具有指定类的a
个标记。
但你想要的是带有a
标签的div
标签和指定的类。您应该使用此XPath表达式:
var diiv = doc.DocumentNode.SelectNodes("//a[div[@class='SPECIFIEDCLASS']]");
更直观的解释:
您的XPath会对每个a
标记执行此操作:
a
代码。Class = "SPECIFIEDCLASS"
选择div标签。 最终,div标签本身已被选中 正确的XPath应该这样做:
a
代码。a
标记,其中:div
代码为Class = "SPECIFIEDCLASS"
。 此处选择了a标签。