Получение такой же информации может получить firebug? - PullRequest
1 голос
/ 07 июля 2011

Все это восходит к некоторым моим первоначальным вопросам о попытке «проиндексировать» веб-страницу.Первоначально я пытался сделать это специально в Java, но теперь я открываю это для любого языка.

Прежде чем я попытался использовать модуль HTML и другие методы в java, чтобы получить информацию, которая мне нужна, но не удалась.

Информацию, которую мне нужно получить с веб-страницы, которую я очень легко могу найти с помощью firebug, и мне было интересно, есть ли возможность дублировать то, что firebug делал специально для моих нужд.Когда я открываю firebug, я перехожу на вкладку NET, затем на вкладку XHR, и она показывает постоянно обновляемую страницу с информацией, которую обновляет сервер.Затем, когда я нажимаю на запрос и смотрю на ответ, в нем есть нужная мне информация, и все это без обновления веб-страницы, что я и пытаюсь сделать (не говоря уже о переменных, которые она выводит, не отображаются вHTML-код веб-страницы)

Так может ли кто-нибудь указать мне правильное направление, как они поступят об этом?(Я буду помещать эту информацию в базу данных mysql, поэтому я добавил ее в качестве тега, но пока не знаю, какой язык лучше использовать)

Редактировать: эти запросы на сервере несколько случайны ихотя он показывает URL-адрес, с которого они приходят, когда я пытаюсь посетить URL-адрес в Firefox, он пытается открыть что-то под названием application / jos

Ответы [ 3 ]

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

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

Для записи используется JavaScriptВ отличие от Java.

Если вы пытаетесь регистрировать вызовы AJAX, лучше всего, если серверное приложение будет регистрировать вызывающий IP-адрес, идентификатор пользователя, файлы cookie и полный URI при получении.Это будет намного лучше, чем любое клиентское решение.

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

1 голос
/ 07 июля 2011

Итак, проблема в том, что?:

  1. На чужой веб-странице, размещенной на чужом сервере, вы хотите извлечь выбранную информацию?
  2. Используя cURL, Python,Java и т. Д. Слишком болезненны, потому что данные постоянно обновляются через AJAX (требуется интерпретатор JS)?
  3. Простые перехваты jQuery или iFrame не будут работать из-за безопасности XSS.
  4. То же самое, aбукмарклет - у него есть дополнительный недостаток - необходимость каждый раз запускать его вручную.


Если это все правильно, то есть 3 других подхода:

  1. Разработать плагин для браузера ... Сложнее, но он способен делать все в одном пакете.

  2. Разработать пользовательский скрипт.Это гораздо проще сделать, и такие технологии, как Greasemonkey решают проблему с XSS.

  3. Используйте макрос-технологию браузера, такую ​​как Chickenfoot .Все они имеют свои плюсы и минусы, в которые я не буду вдаваться.

Использование Greasemonkey:
В зависимости от сайта, это может быть довольно легко,Большим недостатком, если вы хотите записывать данные, является то, что вам нужен собственный веб-сервер и веб-приложение.Но этот сервер может быть локально размещен в стеке XAMPP или любой другой технологии веб-приложений, с которой вам удобно.

Пример кода, который перехватывает данные AJAX страницы: Использование Greasemonkey и jQuery для перехвата данных JSON / AJAX со страницы и их обработки .

Обратите внимание, что если на целевой странице НЕ используется jQuery, используемая библиотека (если таковая имеется) обычно имеет аналогичный перехватвозможностей.Или прослушивание DOMSubtreeModified всегда работает тоже.

1 голос
/ 07 июля 2011

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

...