繁体   English   中英

C#HtmlAgilityPack获取表

[英]C# HtmlAgilityPack Get Table

我只是想学习HTMLAgilityPack。 我要从完整表中获取数据吗? (演员名称和角色名称列表)在imdb站点中。

样品胶卷; http://www.imdb.com/title/tt0482571

元素: http//prntscr.com/al6jc9

我确定元素。 如何使用GridControl对象将此数据传输到DevExpress? 我在gridcontrol中有两列。 (演员,角色)

我目前有以下代码;

DataTable dt = new DataTable();
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
var _gts = doc.DocumentNode.SelectNodes("//table[@id='cast_list']tbody//tr//actor");
foreach (var item in _gts)
{
  var s = item.Elements("name").ToList();
  foreach (var item2 in s)
  {
     dd.Add(item2.InnerText)
  }
}

我想得到完全像这样的结果;

prntscr.com/al7b83

我相信您可能已经知道了,但是为了完整起见:

    using HtmlAgilityPack;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net;
    using System.Text;
    using System.Threading.Tasks;

    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                WebClient wc = new WebClient();
                string html = wc.DownloadString("http://www.imdb.com/title/tt0482571/");

                HtmlDocument doc = new HtmlDocument();
                doc.LoadHtml(html);
                var castListRows = doc.DocumentNode.SelectNodes("//table[@class='cast_list']/tr");
                foreach (var castListRow in castListRows)
                {
                    var nameNode = castListRow.Descendants().Where(n => n.Attributes.Contains("itemprop") && n.Attributes["itemprop"].Value == "name").FirstOrDefault();
                    if (nameNode != null)
                    {
                        var characterCell = castListRow.CreateNavigator().Select("td[@class='character']/div/a");
                        if (characterCell.MoveNext())
                        {
                            Console.WriteLine("Actor={0}, Character={1}", nameNode.InnerText, characterCell.Current.InnerXml);
                        }                   
                    }
                }
                Console.ReadKey();
            }
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM