Проблема парсинга HTML с использованием C # - PullRequest
1 голос
/ 20 февраля 2010

С здесь , я пытаюсь получить данные из котировок акций за каждые 10 минут.

Я использовал WebClient для загрузки содержимого страницы и для анализа я использовал регулярные выражения. Он отлично работает для других URL. Для конкретного URL мой код синтаксического анализа не работает.

Я думаю, что это проблема с javascript. Когда я загружаю страницу в браузере, после загрузки содержимого страницы, требуется некоторое дополнительное время для вывода данных. Может быть, этот парень использует какой-то клиентский скрипт для этой страницы. Может ли кто-нибудь помочь мне, пожалуйста ..........

Ответы [ 2 ]

4 голосов
/ 20 февраля 2010

HTML Agility Pack избавит вас от множества головных болей. Попробуйте вместо использования регулярных выражений для разбора HTML.

Что бы это ни стоило, на странице, на которую вы ссылаетесь, данные цитаты действительно находятся в коде Javascript, отметьте http://www.nseindia.com/js/getquotedata.js и http://www.nseindia.com/js/quote_data.js

2 голосов
/ 20 февраля 2010

согласно ответу @Vinko Vrsalovic, Html Agility pack - ваш друг. Вот образец

  WebClient client = new WebClient();
  string source = client.DownloadString(url);

  HtmlAgilityPack.HtmlDocument document = new HtmlAgilityPack.HtmlDocument();
  document.LoadHtml(source);

  HtmlNodeCollection nodes = document.DocumentNode.SelectNodes("//*[@href]");

   foreach (HtmlNode node in nodes)
   {
    if (node.Attributes.Contains("class"))
    {
     if (node.Attributes["class"].Value.Contains("StockData"))
     {// Here is our info }
    }
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...