Как создать веб-сканер, чтобы найти определенную рекламу, которая находится в iframe, загруженном Javascript - PullRequest
1 голос
/ 26 февраля 2010

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

Что было бы лучшей «отправной точкой» для достижения этого? В данный момент я рассматриваю приложение Adobe AIR, которое может сканировать сайт и проверять DOM, чтобы найти объявление, а также запускать javascript и загружать содержимое iframe. Другой вариант, который я могу придумать, - это использовать Firefox в качестве платформы (возможно, с помощью GreaseMonkey или Selenium? Я действительно не знаю, как использовать Firefox таким образом).

Кто-нибудь знает что-нибудь подходящее для создания этого или есть какие-либо предложения по использованию Firefox для этого?


Дополнительные детали:

Интенсивная загрузка ЦП не является проблемой и не зависит от того, какой браузер открыт. Это не нужно запускать на автономном сервере, оно будет работать на мощном настольном компьютере. ОС тоже не проблема. Было бы полезно, если бы сканер загружал каждую страницу несколько раз, так как реклама находится в ротации. Хотя сканер должен выполнить javascript и загрузить содержимое iframe, он не должен отображать флэш-файлы.

Ответы [ 3 ]

3 голосов
/ 14 марта 2010

Альтернативой использованию "браузера в качестве сканера" ​​является использование HTMLUnit , как сказано на странице:

HtmlUnit - это «браузер без графического интерфейса для программ Java». Он моделирует документы HTML и предоставляет API, который позволяет вам вызывать страницы, заполнять формы, щелкать ссылки и т. Д., Как вы делаете это в «обычном» браузере.

Он имеет довольно хорошую поддержку JavaScript (которая постоянно совершенствуется) и способен работать даже с довольно сложными библиотеками AJAX, имитируя либо Firefox, либо Internet Explorer, в зависимости от конфигурации, которую вы хотите использовать.

1 голос
/ 13 марта 2010

Я думаю, что вы не хотите гусеничном шасси. Вы собираетесь запустить его на одной странице и не хотите, чтобы он просматривал Интернет по ссылкам, верно?

Если так - Вы хотите найти что-то на странице с включенным JavaScript. Тогда вам просто нужно использовать JavaScript.

Вам понадобится:

  1. сайт:)
  2. правильные права на доступ к его содержимому - используйте greasemonkey для FF или пользовательские скрипты в Opera
  3. код, подобный этому jQuery sampe:

поиск вещей в iframes:

$('iframe').each(function(){
     $(this).contents().find('object').each(function(){
      if($(this).attr('name').match(/regex/)){
        $(this).remove(); //or do whatever You want
       }
      });
    });

Внимание: доступ к содержимому iframe в разных браузерах может отличаться и зависит от времени запуска сценария.

1 голос
/ 26 февраля 2010

Если объявление показывается только при включенном javascript, у вас возникнет проблема, так как никакой сканер не сможет прочитать веб-страницу по этому вопросу.

Есть ли в самом коде javascript что-то, что могло бы быть подсказкой к тому месту, где отображается дополнение? Если это так, может быть, вы можете проверить это.

Я пробовал подобные вещи раньше, и я использовал BeautifulSoup в python, и он работал очень хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...