Программный браузер Python с JavaScript - PullRequest
14 голосов
/ 16 декабря 2009

Я хочу отсканировать экран сайта, использующего JavaScript.

Существует mechanize , программный веб-браузер для Python. Тем не менее, это (понятно) не интерпретирует JavaScript. Есть ли программный браузер для Python, который делает? Если нет, есть ли какая-либо реализация JavaScript в Python, которую я мог бы использовать для ее создания?

Ответы [ 7 ]

11 голосов
/ 16 декабря 2009

Возможно, лучше использовать такой инструмент, как Selenium , чтобы автоматизировать очистку с помощью веб-браузера, поэтому JS выполняется и страница отображается так же, как для реального пользователя.

7 голосов
/ 16 декабря 2009

Пакет PyV8 прекрасно упаковывает движок Google V8 Javascript для Python. Это особенно приятно, потому что вы не только можете звонить из Python в код Javascript, но вы можете перезванивать из Javascript в код Python. Это позволяет довольно просто реализовать обычные объекты, предоставляемые браузером (то есть все в глобальном пространстве имен Javascript: «окно», «документ» и т. Д.), Что вам нужно сделать, если вы собираетесь сделать возможность эмулятора браузера Python с поддержкой Javascript, возможно, с помощью mechanize .

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

Мой любимый PyPhantomJS . Он написан с использованием Python и PyQt4. Он полностью обезглавлен, и вы можете полностью им управлять из JavaScript.

Однако, если вы действительно хотите увидеть страницу, вы также можете использовать QWebView из PyQt4.

4 голосов
/ 28 марта 2011

Существует также spynner "модуль программного веб-браузера с программируемым состоянием для Python с поддержкой Javascript / AJAX на основе инфраструктуры QtWebkit": http://code.google.com/p/spynner/

2 голосов
/ 16 декабря 2009

Вы также можете попробовать определить Chickenfoot триггеры страниц на рассматриваемых страницах, выполнить любые операции на странице и сохранить результаты операции в локальный файл, а также вызвать Firefox из командной строки внутри вашей программы с последующим чтением файла.

1 голос
/ 03 октября 2010

Вы можете попробовать браузер Zope

http://pypi.python.org/pypi?:action=display&name=zope.testbrowser

1 голос
/ 10 июня 2010

Я рекомендую вам взглянуть на некоторые из доступных вам вариантов на http://wiki.python.org/moin/WebBrowserProgramming - на удивление, это становится общим вопросом (сегодня я нашел три по stackoverflow, выполняя поиск по словам "браузер питона" в гугле). если вы сделаете то же самое, вы найдете другие ответы, которые я дал.

...