Javascript (и рендеринг HTML) движок без графического интерфейса для автоматизации? - PullRequest
3 голосов
/ 26 апреля 2010

Существуют ли какие-либо библиотеки или платформы, которые обеспечивают функциональность браузера, но не требуют физического рендеринга на экране?

Я хочу автоматизировать навигацию по веб-страницам (например, это делает Mechanize), но я хочу использовать все возможности браузера, включая Javascript. Таким образом, я хотел бы иметь какой-нибудь виртуальный браузер, который я мог бы использовать для «щелчка по ссылкам» программным способом, чтобы в нем отображались элементы DOM и JS-скрипты и манипулировали этими элементами.

Решение желательно на Python, но я могу управлять другими.

Ответы [ 7 ]

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

PhantomJS и PyPhantomJS - вот что я использую для подобных задач.

Что это, это безголовый браузер на основе WebKit, который полностью контролируется с помощью JavaScript. Есть реализация C ++ (PhantomJS) и реализация Python (PyPhantomJS). Хотя я предпочитаю Python, потому что он имеет систему плагинов, которая позволяет вам добавлять функциональность в ядро, фактически не изменяя какой-либо код, в отличие от C ++. :)

2 голосов
/ 10 июня 2010

В настоящее время доступна абсолютная тонна бесплатной программной технологии: выберите http://wiki.python.org/moin/WebBrowserProgramming, но если у вас есть конкретные вопросы, присоединяйтесь к pyjamas-dev в группах Google, и я с удовольствием предоставлю дополнительную информацию. , краткий ответ: вы можете запустить pywebkitgtk «без головы», или вы можете использовать xulrunner (через python-hulahop) снова, используя pygtk, фактически не выполняя «browserwidget.show ()», и есть также pykhtml. также вы можете использовать python COM для подключения к MSHTML.DLL.

это все "читерские" методы: использование привязок python к графическому движку веб-браузера без фактического запуска графического бита. если вы действительно хотели бы заняться серьезным программированием на уровне ядра, вы могли бы создать «порт» веб-набора, который был бы не подключен к инструментарию GUI: как опытный программист веб-набора я Я бы сказал, что это заняло около 2 недель усилий, чтобы создать такую ​​«безголовую» версию webkit.

л.

1 голос
/ 26 мая 2010

HTMLUnit в Java очень хорош. Я думаю, что только реализации Java безголовых браузеров обеспечивают поддержку Javascript.

MaxQ , я читал о здесь , звучит так, как будто это может быть интересно: "написанный на Java, генерирует скрипты Jython"

1 голос
/ 28 апреля 2010

Есть Капов. Это чистая Java и стоит денег:

http://kapowtech.com/

И есть Lixto: он основан на Eclipse и использует Mozilla Gecko в качестве движка рендеринга (если они уже не изменили его на WebKit, как они сказали, что сделают много лет назад). Это очень красиво и стоит денег:

http://www.lixto.com/?page_id=50

Они оба являются графическими инструментами, в которых вы определяете навигацию по сайту и то, что должно быть извлечено с помощью точки и щелчка. Но вы также можете написать xpath и регулярные выражения и даже JavaScript, который запускается в контексте сайтов.

Я использовал их как для извлечения веб-данных лекций, так и для извлечения прикладных веб-данных в техническом университете Вены (Lixto написан профессором, который проводил лекцию).

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

взгляните на эту маленькую глупость на ajaxian

http://ajaxian.com/archives/server-side-rendering-with-yui-on-node-js

В нем также говорится о Aptana Jaxer , который, я думаю, работает на безголовом firefox, так что это в основном движок браузера Mozilla во всей своей красе.

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

Похоже, http://watin.sourceforge.net/ может быть хорошим путем.

Если вам не нужен чистый Python, вы можете сделать IronPython, так как это проект на C #.

0 голосов
/ 29 августа 2010

Попробуйте HtmlUnit !!!

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