C# 使用CsQuery遍历dom

C# 使用CsQuery遍历dom,c#,csquery,C#,Csquery,我试图学习如何使用CsQuery遍历dom以获取特定文本 html如下所示: <div class="featured-rows"> <div class="row"> <div class="featured odd" data-genres-filter="MA0000002613"> <div class="album-cover"> <div class="artist"> &

我试图学习如何使用CsQuery遍历dom以获取特定文本

html如下所示:

<div class="featured-rows">
  <div class="row">
    <div class="featured odd" data-genres-filter="MA0000002613">
      <div class="album-cover">
      <div class="artist">
        <a href="http://www.allmusic.com/artist/half-japanese-0000555654">Half apanese</a>
      </div>
      <div class="title">
      <div class="label"> Joyful Noise </div>
      <div class="styles">
      <div class="rating allmusic">
      <div class="rating average">
      <div class="headline-review">
    </div>
    <div class="featured even" data-genres-filter="MA0000002572, MA0000002613">
    </div>
  <div class="row">
  <div class="row">
  <div class="row">
public void GetRows()
        {
            var artistName = string.Empty;
            var html = GetHtml("http://www.allmusic.com/newreleases");            
            var rows = html.Select(".featured-rows");
            foreach(var row in rows)
            {     
                var odd = row.Cq().Find(".featured odd");
                foreach(var artist in odd)
                {
                    artistName = artist.Cq().Text();
                }
            }
        }

第一个为.select行工作,但我不知道如何深入到.artist来获取文本

您应该尝试类似的方法:

var html = GetHtml("http://www.allmusic.com/newreleases");
var query = CQ.Create(html)
var row = query[".artist>a"];
string link = row.Attributes["href"];
string text = row.DefaultValue or row.InnerText or row.Value...
CsQuery是JQuery的端口,所以您可以在google上搜索JQuery代码

更新: 遍历以获取所有艺术家和头衔

var rows = query[".featured odd"];
foreach(var row in rows)
{
  var artistsLink = row[".artists>a"];
  var title = row[".title"];
 // here do whatever you need with this
}
应该是

var odd = row.Cq().Find(".featured.odd");

如果它是一个真正的jQuery端口,那么您应该能够再次使用.find(“选择器”)。需要注意的是:“除非AMN明确授权,否则您同意不复制、链接到(通过超链接或其他方式),刮取、修改、出租、复制、租赁、出借、出售、分发、镜像、帧、辛迪加、缓存、存储、记录、发布、下载、传输、显示或创建AMN财产的衍生作品,全部或部分,以任何方式。”——#不,律师我不会使用这个,它只是为了我个人的培训。谢谢Radenko。但是,如果我想循环通过dom来获取每张唱片的艺术和标题,该怎么办?
var odd = row.Cq().Find(".featured odd");
var odd = row.Cq().Find(".featured.odd");