Извлечь данные веб-страницу

2

Folks, Я пытаюсь извлечь данные с веб-страницы с помощью С#.. на тот момент, когда я использовал Stream из WebReponse, и я разбирал его как большую строку. Это долгий и болезненный. Кто-то знает лучший способ извлечь данные с веб-страницы? Я говорю WINHTTP, но не для С#..

Теги:

2 ответа

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

Если веб-страница является действительной XHTML, вы можете быстро и легко прочитать ее в XPathDocument и xpath своим способом быстро и легко прямо на нужные вам данные. Если это недействительно XHTML, я уверен, что есть некоторые синтаксические анализаторы HTML, которые вы можете использовать.

Нашел аналогичный вопрос с ответом, который должен помочь. Поиск С# HTML-анализатора

5

Для загрузки данных с веб-страницы проще использовать WebClient:

string data;
using (var client = new WebClient())
{
    data = client.DownloadString("http://www.google.com");
}

Для анализа загруженных данных при условии, что это HTML, вы можете использовать отличную Html Agility Pack.

И вот полный пример, извлекающий все ссылки с данной страницы:

class Program
{
    static void Main(string[] args)
    {
        using (var client = new WebClient())
        {
            string data = client.DownloadString("http://www.google.com");
            HtmlDocument doc = new HtmlDocument();
            doc.LoadHtml(data);

            var nodes = doc.DocumentNode.SelectNodes("//a[@href]");
            foreach(HtmlNode link in nodes)
            {
                HtmlAttribute att = link.Attributes["href"];
                Console.WriteLine(att.Value);
            }
        }
    }
}
  • 0
    пожалуйста, объясните немного больше

Ещё вопросы

Сообщество Overcoder
Наверх
Меню