Как можно организовать парсинг html страницы? - CodeHelper

Как можно организовать парсинг html страницы?

1

Как сделать парсинг страницы "www.deviantart.com" (на C#), допустим так, чтобы отобразился только блок/таблица с фотографиями. Внизу я привожу наглядный пример, что хотел бы получить..

alt text

alt text

Если возможно, то именно с отображением изображений..

Заранее спасибо огромное!

kiborg

HELP :(

Sergey

Ну эта задача обычного распарсивания текста. Можно использовать регулярные выражения, можно вручную, а можно поискать какую-нибудь dll для распарсивания HTML

kiborg

А можно пример, пожалуйста.. очень нужно, и охота разобраться. :(

Sergey

Вряд ли кто-нибудь напишет пример. Но если очень хочеться можете заказать на фрилансерском сайте такую программку и разобрать потом её, что да как.

Лучший ответ:

1

Можно использовать HtmlAgilityPack. Это готовый html парсер. Код парсинга представленной страницы может быть таким:

private static string GetImages(string page)
{
    var doc = new HtmlDocument();
    doc.LoadHtml(page);
    var nodes = doc.DocumentNode
        .SelectNodes("//div[@class='browse2-results']/*/div[@class='tt-a']");
    return nodes
        .Cast<HtmlNode>()
        .Aggregate(
            string.Empty, 
            (current, node) => current + node.OuterHtml);
}

Метод GetImages принимает код страницы, а возвращает блоки с рисунками.

kiborg

Спасибо за совет. И за часть кода. Я и сам думал использовать данный парсер, да вот только не могу с ним разобраться. Значит попробую его все таки разобрать, и реализовать.

Еще раз спасибо.

Новые ответы


0

Написал код парсинга с помощью [B]HtmlAgilityPack[/B], но не могу вывести графически, т.е. чтобы отобразилось не древовидно, а графически.

    HtmlWeb web = new HtmlWeb();
    HtmlAgilityPack.HtmlDocument doc = web.Load("http://tracker.zp.ua/");

    // Get all columns in the document
    HtmlNodeCollection cols = doc.DocumentNode.SelectNodes("//td//div/a");

    // Get the value of the column and print it
    foreach (HtmlNode col in cols)
    {

        webBrowser1.Navigate(col.InnerText);
    }

Древовидно отображается в консоли и textBox-e. А вот как графически, думал через webBrowser, но а как конкретно?

Есть идеи, что можно изменить или добавить?


v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.