我在网页上有一个我希望提取的源代码(我已将其缩小到与此相关的内容:
<div class="sideInfoPlayer">
<a class="signLink" href="spieler.php?uid=12345" title="Profile">
<span class="wrap">Wagamama</span>
</a>
现在的诀窍是我想把Wagamama这个词放到一个消息框中,但是那个词会在该网站的每个页面上发生变化,所以我需要获得该元素,但此页面上没有ID。因此,我想首先搜索名为“sideInfoPlayer”的类,然后在前一个类块中找到“wrap”类。
我已经写了下面的第一个,但不知道如何处理第二个,然后得到所需的值。
HtmlElementCollection col = webBrowser1.Document.GetElementsByTagName("div");
foreach (HtmlElement element in col)
{
string cls = element.GetAttribute("className");
if (String.IsNullOrEmpty(cls) || !cls.Equals("sideInfoPlayer"))
continue;
}
我希望你可以帮我解决这个问题。
答案 0 :(得分:0)
你有更好的选择。看http://htmlagilitypack.codeplex.com/
在这里:How can i parse html string
首先,您需要手动下载或使用NuGet包管理器添加对HtmlAgilityPack库的引用。
// loading html into HtmlDocument
var doc = new HtmlWeb().Load("http://website.com/mypage");
// walking through all nodes of interest
foreach (var node in doc.DocumentNode.SelectNodes("//div[@class='sideInfoPlayer']/span[@class='wrap']"))
{
// here is your text: node.InnerText
}
//div[@class='sideInfoPlayer']/span[@class='wrap']
被称为Xpath Expression,这个字面意思是“使用class = sideInfoPlayer来获取所有带有class = wrap的所有span元素,这些元素是div元素的子元素。
我没有测试它,但它应该可以工作。