ser*_*erg 5 html c# web-scraping csquery
这是我的代码:
CQ dom = CQ.Create(htmlString);
var items = dom[".blog-accordion li"];
foreach (var li in items)
{
var newTournament = false;
var test = li["header h2"];
}
Run Code Online (Sandbox Code Playgroud)
在foreach循环内部li变成一个IDomObject变量,我不能再深入钻取它.
有什么建议?这是我试图解析的示例HTML:
<ul>
<li>
<header>
<h2>Test</h2>
</header>
</li>
<li>
<header>
<h2>Test 2</h2>
</header>
</li>
<li>
<header>
<h2>Test 3</h2>
</header>
</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我需要抓取每个h2元素的文本.
Ben*_*aum 13
这样做是为了保持CsQuery一致jQuery,行为方式相同.您可以CQ通过调用.Cq()方法将其转换回对象
foreach (var li in items)
{
var newTournament = false;
var test = li.Cq().Find("header h2");
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您想要更多jQueryish语法,以下内容也可以:
foreach (var li in items)
{
var newTournament = false;
var test = CQ.Create(li)["header h2"];
}
Run Code Online (Sandbox Code Playgroud)
如果您愿意,可以将您的代码重新考虑到以下内容:
var texts = CQ.Create(htmlString)[".blog-accordion li header h2"]
.Select(x=>x.Cq().Text());
Run Code Online (Sandbox Code Playgroud)