загрузка веб-страниц morningstar для скрининга - PullRequest
2 голосов
/ 15 июля 2011

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

  1. общий доход по сравнению с эталоном
  2. общий доход по сравнению с аналогами
  3. процентильный рейтинг

Вот пример: пример morningstar

В качестве прелюдии к снятию скриншотов, я должен иметь возможность загрузить веб-страницу сжелаемый контент.К сожалению, когда я пытаюсь использовать Java SE6 или wget для получения ссылки на приведенный выше пример, я получаю только часть html (таблицы, отображающие общее количество возвращаемых данных отсутствуют).Я получаю тот же результат, если использую свой браузер (Chrome), чтобы сохранить страницу только в формате HTML.Я замечаю, что если я использую свой браузер, чтобы сохранить всю страницу (html, js, css и все остальное), загруженный html действительно содержит интересную информацию.

У меня два вопроса:

  1. Как программно загрузить весь HTML-файл?Хотя я пишу эту программу на Java, я не возражаю против вызова внешнего инструмента.
  2. Почему мои вышеупомянутые попытки не дали ожидаемый HTML-код?

Спасибо.

В качестве примечания я рассмотрел Yahoo Finance и YQL /datatables в качестве альтернативы, но Yahoo Finance не предоставляет процентильный рейтинг.Если вы посмотрите на производительность взаимного фонда, вы увидите значения N / A для рейтинга. Пример Yahoo Finance .К сожалению, это исключает использование YQL / datatables.

Что касается любых вопросов об авторском праве Morningstar, я делаю скрининг для личного, некоммерческого использования, которое их уведомление об авторских правах позволяет в последнем предложении второго абзаца:

Вы имеете право использовать содержащуюся в нем информацию только для личного некоммерческого использования. Morningstar Copyright .

Ответы [ 3 ]

3 голосов
/ 22 июля 2011

Для загрузки веб-страницы morningstar мне понадобился инструмент, который загружал бы и интерпретировал код JavaScript, связанный с веб-страницей.Многие такие инструменты для разных языков программирования и браузеров упоминаются в StackOverflow.Вот те, которые я использовал:

  • htmlunit - браузер без Java-программ для Java
  • htmlunitscripter - aFirefox надстройка, которая автоматически генерирует код htmlunit
1 голос
/ 21 июля 2011

Таким образом, страница широко использует XMLHttpRequest для заполнения данных, что означает, что вашему скребку придется выполнять оценку javascript.Если вы используете инструменты разработчика в Chrome, вы увидите HTML-код, используемый для построения страницы, и данные JSON, использованные для построения таблиц.

Для этого я бы попытался использовать Internet Explorer, так как он может разместить всю страницу внутри него и выполнить оценку JavaScript.Возможно, есть и другие способы использования таких API, как WebKit, но IE должен работать сразу после установки.

0 голосов
/ 15 июля 2011

Вы пробовали irobot на http://irobotsoft.com? Вы можете проверить это:

  • Перейдите по ссылке
  • Отметьте интересующие данные
  • Добавить действие по извлечению данных
  • Протестировать действие и посмотреть, извлекает ли оно нужные данные

У них есть форум, на котором вы можете задать общие вопросы о снятии экрана

...