2010-04-26 2 views
3

Существуют ли библиотеки или фреймворки, обеспечивающие функциональность браузера, но физически не нужно физически отображать экран?Javascript (и рендеринг HTML) без графического интерфейса для автоматизации?

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

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

ответ

1

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

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

1

Существует Капоу. Его чистая Java и стоит денег:

http://kapowtech.com/

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

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

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

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

1

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

MaxQ, я читал о here, кажется, что это может быть интересно: «написана на Java, создает Jython скрипты»

2

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

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

l.

3

PhantomJS и PyPhantomJS - это то, что я использую для таких задач.

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