Как получить таблицу из Википедии

c# html-agility-pack web-scraping xml

Вопрос

Я хочу поместить одну таблицу из Википедии в xml-файл и затем проанализировать ее на C #. Является ли это возможным? Если да, могу ли я сохранить только столбцы Заголовок и Жанр в xml?

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-файл


Популярные ответы

Также подумайте о том, чтобы посмотреть API Википедии на нуль в определенном разделе страницы wikipedia

Документация API описывает, как вы можете отформатировать результаты поиска для последующего разбора.



Related

Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему