Есть ли способ выполнить JavaScript в Perl? - PullRequest
6 голосов
/ 22 января 2011

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

Что мне здесь не хватает?

Спасибо заранее. С уважением.

PS: я не спамер. Просто любопытно.

Ответы [ 5 ]

8 голосов
/ 22 января 2011

Вы бы имели в виду что-то вроде JavaScript :: SpiderMonkey , Perl-интерфейс для движка JavaScript, используемого Mozilla?

6 голосов
/ 22 января 2011

TMTOWTDI .Другой вариант - WWW :: Scripter , с плагином Javascript или AJAX.

6 голосов
/ 22 января 2011

WWW::Selenium * * 1004

4 голосов
/ 23 января 2011

Вы можете попытаться установить SpiderMonkey и - в вашей программе на Perl - выполнить javascript в обратных галочках и зафиксировать результат, как и в любом другом инструменте командной строки unix.Spidermonkey имеет параметр командной строки для этого, аналогичный параметру командной строки perl -e.Двоичный файл spidermonkey называется "js", то есть:

/ path / to / spidermonkey / bin / js -e "print (10);"

> 10

Я думаю, вы также можете установить v8-shell в качестве альтернативного движка, но затем вы должны сначала установить 'scons', который доступен только для unix.

. / V8-shell -e 'print ("10 * 10 =" + 10 * 10)'

4 голосов
/ 22 января 2011

Существует также Win32 :: IE :: Mechanize , Mozilla :: Mechanize .Но ранее упомянутый WWW :: Selenium является наиболее DWIW и хорошо поддерживается , если у вас есть доступ к браузерам и вы можете запустить сервер Selenium. Selenium - это Java-критерий, который выполняет взаимодействие с браузером для вас.Он имеет IDE s для нескольких браузеров и может писать код для вас - записывая действия браузера - на нескольких языках , включая Perl, или вы можете написать его вручную.Это тест-ориентированный , где он превосходит, но нет никаких оснований не использовать его для общей автоматизации / очистки.

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