Как читать / анализировать динамически генерируемый веб-контент? - PullRequest
2 голосов
/ 21 октября 2009

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

Обратите внимание, что генерируется динамически - недостаточно получить исходный html, потому что интересующие меня данные генерируются с помощью javascript, который ссылается на внутренний код. Поэтому, когда я просматриваю источник веб-страницы, я не вижу данных. (Например, зайдите в Google и выполните поиск. Проверьте исходный код на странице результатов поиска. Очень мало данных, отображаемых вашим браузером, отражается в источнике - большая часть данных генерируется динамически. Мне нужен какой-то способ для доступа к этим данным.)

Ответы [ 4 ]

1 голос
/ 21 октября 2009

Выберите язык и среду, включающую средство визуализации HTML (например, .NET и элемент управления WebBrowser). Используйте средство рендеринга HTML, чтобы получить URL-адрес и создать HTML DOM в памяти (убедитесь, что сценарии включены). Прочитайте содержимое HTML DOM после того, как средство визуализации выполнит свою работу.

Пример (вам нужно сделать это внутри System.Windows.Form производного класса):

WebBrowser browser = new WebBrowser();
browser.Navigate("http://www.google.com");
HtmlDocument document = browser.Document;
// extract what you want from the document
0 голосов
/ 21 октября 2009

Если у вас есть Firefox / greasemonkey, создание DOM-дампера должно быть простым делом.

0 голосов
/ 21 октября 2009

Простая мысль: если мы говорим об AJAX, вы можете посмотреть ссылки на динамические данные. Затем вы можете использовать javascript на странице, о которой вы говорите, чтобы переформатировать это.

0 голосов
/ 21 октября 2009

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

...