Как я могу сделать так, чтобы LWP::UserAgent отображался как установленный Flash?

StackOverflow https://stackoverflow.com/questions/2210953

  •  18-09-2019
  •  | 
  •  

Вопрос

У меня есть Perl-скрипт, который использует LWP:: Агент пользователя чтобы загрузить веб-страницу, которую он затем обрабатывает с помощью регулярных выражений.Проблема в том, что части веб-страницы, которые являются обычным HTML, не возвращаются в LWP::UserAgent, поскольку сайт распознает, что в браузере не установлен Flash, и вместо этого возвращает HTML, предлагая нам загрузить Flash вместо соответствующего HTML, который нам нужно проанализировать.

Как я могу сделать так, чтобы LWP::UserAgent отображал установленный flash на веб-сервере, с которого мы запрашиваем страницу?Я использую следующий код для инициализации LWP::UserAgent:

use LWP::UserAgent;
my $ua = LWP::UserAgent->new(cookie_jar => { },requests_redirectable => [ ]);
$ua->agent('Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:9.9.9.9) Gecko/20079999 Firefox/2.0.0.1');
$ua->timeout(10);

Заранее спасибо за вашу помощь!

Это было полезно?

Решение 3

Оба @Michael и @dma_k были правы.Сервер не проверял, установлен ли flash в LWP::UserAgent.Вместо этого по какой-то причине возвращенный контент не удалялся корректно, пока мы пытались отладить скрипт.К сожалению, мы не нашли способа исправить это, но после некоторых проб и ошибок мы выяснили, как удалить соответствующие поля со страницы.Извините, что на этот вопрос на самом деле нет правильного ответа.

Другие советы

Я бы порекомендовал вам использовать Поджигатель для этого - очень хороший и мощный аддон для FF.Я согласен с Майклом, что сервер может узнать такую информацию о клиенте только из отправляемых ему заголовков или из скрипта, который запускается на клиенте и может взаимодействовать с сервером (JavaScript, Flex, ...).В случае с JavaScript вы можете попробовать временно отключить его в FF и попытаться перезагрузить страницу:если сервер отвечает вам так же, как и для LWP, то вы знаете ответ.

Сайт, вероятно, тестирует, установлен ли flash с использованием javascript.Часто этот тест выполняется только на стороне клиента и не должен влиять на страницу.Но, возможно, они запускают асинхронный запрос, сообщающий серверу, что flash установлен.Чтобы проверить это, вам необходимо загрузить TamperData, загрузить окно TamperData из меню сервис и обновить страницу.В окне будут показаны все выполняемые запросы, и вы сможете их просмотреть.Если есть какой-то запрос, например http://whatever.com/flash_test.php?flash_installed=true , затем вы можете воспроизвести этот запрос с помощью LWP.

Другой вариант - декомпилировать flash-приложение.Это очень легко сделать, и часто вы получаете полный исходный код, включая комментарии к коду, и вот бесплатная пробная версия.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top