Существует веб-сайт, от которого я пытаюсь вытянуть информацию в Perl, однако раздел страницы, в которой я нуждаюсь, сгенерирован с помощью JavaScript так все, что Вы видите в источнике:
Я должен так или иначе вытащить содержание того отделения и сохранить его в файл с помощью Perl/proxies/whatever., например, информацию, которую я хочу сохранить, был бы
document.getElementById('results').innerHTML;
Я не уверен, возможно ли это или если у любого были любые идеи или способ сделать это. Я использовал исходный дамп рыси для других страниц, но так как я не могу прямой экран очищать эту страницу, которую я приехал сюда, чтобы спросить об этом!
Если кому-либо интересно, страницей является http://downloadcenter.trendmicro.com/index.php?clk=left_nav&clkval=pattern_file®s=NABU и информация, которую я пытаюсь получить, строка о ConsumerOPR
Вам нужно будет реконструировать то, что делает Javascript. Запускает ли он запрос AJAX для заполнения Если Javascript просто выполняет манипуляции с DOM в чистом виде, это означает, что данные должны существовать где-то еще на странице или в Javascript уже. Так что выясните, откуда он исходит, и возьмите его. Наконец, если ни один из этих вариантов не подходит, вам может потребоваться просто использовать настоящий браузер для этого. Есть несколько вариантов для автоматизации поведения браузера, например WWW :: Mechanize :: Firefox или Win32 :: IE :: Mechanize .
Перенос браузера на сервер от Джона Ресига может быть полезным.
для работы с динамически созданным HTML вы можете использовать плагин FireFox Chickenfoot . Или, если вам нужно что-то, что работает из командной строки, скрипт использует привязки к Perl. Я делал это с Python раньше.
Поскольку содержание вашей страницы создается с помощью некоторого Javascript, вам необходимо:
Решением может быть действительно запустить браузер для перехода к этой странице, а затем проанализировать загруженную им страницу, чтобы извлечь информацию?
Я никогда не использовал это для захвата, но Здесь может помочь Selenium suite : используя Selenium RC, вы можете запустить настоящий браузер и протестировать его - тогда у вас есть функции для получения из него данных.
Это не совсем быстро и довольно тяжело (нужно запускать браузер!) , но работает неплохо: например, вы будете использовать Firefox для перехода на свою страницу - - что означает настоящий движок Javascript, которым ежедневно пользуется множество людей; -)
Это может быть то, что вы ищете (в PHP):
$url = 'http://downloadcenter.trendmicro.com/ajx/pattern_result.php';
$ch = curl_init();
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'q=patresult_page®=NABU');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec($ch);
curl_close($ch);
echo $content;
exit;
как только вы получите контент, вы можете использовать что-то вроде: http: / /code.google.com/p/phpquery/, чтобы проанализировать нужные вам результаты или аналогичный Perl-эквивалент ???
И / или выполните синтаксический анализ самостоятельно.
К вашему сведению: все, что я сделал, это использовал firebug для проверки запросов и воссоздал их с помощью PHP / CURL ...