2013-07-27 2 views
0

Я пытаюсь скрести данные здесь http://www.forexfactory.com/calendar.phpHtmAgilityPack не возвращает все узлы

Вот мой код

 var parser = new HtmlDocument(); 
     parser.LoadHtml(html); 

     var datas = parser.DocumentNode.SelectNodes("//tr/@data-eventid"); 

где html загружается по ссылке выше.

Проблема в том, что извлеченные узлы несовместимы. В отладчике он возвращает только 14 узлов, а другие - как-то вроде ошибки (выдается как ?). Но в окне QuickWatch он возвращает все узлы. Я не совсем уверен, почему это происходит.

Даже если я использую хром-консоль, он извлекает все узлы, поэтому разметка правильная. $x("//tr/@data-eventid") в хром-консоли.

Not okay Okay

+0

Не знаете, в чем ваша конкретная проблема ... У отладчика есть много «случайных» ограничений, чтобы сохранить его несколько быстро (например, без автоматического расширения перечислений ...) и разных окон (немедленный, часовой, локальный, over, ...), вероятно, тоже имеют разные ограничения ... Если вас не устраивает конкретное окно отладки, попробуйте другие (например, Watch, похоже, работает для вас в этом случае) или напишите свой собственный просмотрщик ... –

+0

@AlexeiLevenkov Я просто понял, что это такой глупый вопрос. ? означает, что элемент еще не был повторен. Я думал, что есть некоторые ошибки с «HtmlAgilityPack». Если бы вы могли ответить ниже, я приму это. –

ответ

0

То, что вы видите, отладчик определенное поведение, само по себе, скорее всего, данные в порядке.

Отладчик имеет множество «случайных» ограничений, чтобы поддерживать его несколько быстро (например, автоматическое расширение перечислений ...) и разных окон (немедленный, часовой, локальный, зависающий, ...), вероятно, имеют разные пределы тоже.

Если вас не устраивает конкретное окно отладки, попробуйте использовать другие (например, часы, похоже, работают для вас в этом случае) или напишите свой собственный visualizer.

Смежные вопросы