c# - 如何从维基百科获取表格

标签 c# xml web-scraping html-agility-pack

我想将维基百科中的一张表放入 xml 文件中,然后将其解析为 C#。是否可以?如果是,我可以仅在 xml 中保存 TitleGenre 列吗?

HtmlWeb web = new HtmlWeb();
HtmlDocument doc = web.Load("http://en.wikipedia.org/wiki/2012_in_film");

HtmlNode node = doc.DocumentNode.SelectSingleNode("//table[@class='wikitable']");

最佳答案

您可以使用网络浏览器:

//First navigate to your address
 webBrowser1.Navigate("http://en.wikipedia.org/wiki/2012_in_film");
        List<string> Genre = new List<string>();
        List<string> Title = new List<string>();
  //When page loaded
  foreach (HtmlElement table in webBrowser1.Document.GetElementsByTagName("table"))
            {
                if (table.GetAttribute("className").Equals("wikitable"))
                {
                    foreach (HtmlElement tr in table.GetElementsByTagName("tr"))
                    {
                        int columncount = 1;
                        foreach (HtmlElement td in tr.GetElementsByTagName("td"))
                        {
                            //Title
                            if (columncount == 4)
                            {
                                Title.Add(td.InnerText);
                            }
                            //Genre
                            if (columncount == 7)
                            {
                                Genre.Add(td.InnerText);
                            }
                            columncount++;
                        }

                    }
                }
            }

现在您有两个列表(类型和标题)。 您可以简单地将它们转换为 xml 文件

关于c# - 如何从维基百科获取表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14035674/

相关文章:

c# - resharper 忽略特定问题

c# - 使用 Moq 模拟带有 Func<T, bool> 参数的存储库调用

Python BeautifulSoup - 在解析无效 HTML 时使用 find_next

R 在对维基百科的 readHTMLTable 调用时崩溃

Python BeautifulSoup - 无法读取网站分页

c# - LINQ查询,忽略带有某些小数点的结果

c# - 无法在 git 中进行推/pull - 使用 visual studio

java - 如何为图像按钮显示 fragment 类型的消息?

c# - 从 xml 获取属性

java - 有没有一个java库可以将XML(LOM)绑定(bind)到XML+RDF?