Имитация браузера в Google App Engine - PullRequest
1 голос
/ 09 мая 2011

Я хочу использовать селен или ветряную мельницу в движке приложений Google для очистки сайта, заполненного JS.Я знаю, что мельница написана на python и javascript.

Возможно ли это?Если это так, как вставить библиотеку?
Если нет, не могли бы вы объяснить, почему и предоставить альтернативы?

Спасибо.

Обновление

Я искал немного больше и увидел, что скрап является чистым питоном.
Будет ли это работать?Это обрабатывает JavaScript?

Ответы [ 4 ]

3 голосов
/ 09 мая 2011

Любая питерская "очищающая" библиотека вряд ли сможет интерпретировать javascript для вас на appengine, поскольку для нее, вероятно, потребуется какое-то расширение C (например, привязка к spidermonkey или v8), которое будет против песочницы GAE.

Но, если вы решитесь перейти на сторону Java, вам может повезти больше.Я знаю, что вы можете получить Rhino, работающий на AppEngine , с небольшой помощью env.js вы можете эмулировать DOM, быстрый Google показывает кучу инструментов для очисткиJava .Это просто вопрос связывания всего этого вместе.

HtmlUnit Похоже, что он пытается сделать именно это, но неясно, является ли он в настоящее время дружественным к приложениям, поскольку кажется, что он многопоточный.

1 голос
/ 09 мая 2011

Селен и ветряная мельница (которые, по-видимому, теперь не нужны) являются контроллерами для настоящего браузера.Обычно они создают настоящий браузер (например, Firefox) в качестве подпроцесса и управляют им.Я не думаю, что вы можете сделать это в AppEngine.Самая близкая вещь к браузеру с чистым кодом, о котором я знаю, это htmlunit , то есть Java.Насколько я знаю, для Python нет эквивалента.

1 голос
/ 09 мая 2011

Я считаю, что и Selenium, и Windmill позволяют вам управлять браузером, а не имитировать его.Предполагается, что они будут работать в среде рабочего стола и работать в реальном браузере, чего нельзя сделать с помощью App Engine.

Вы можете использовать API Fetch URL и анализатор HTML, например BeautifulSoup для обработки страниц в App Engine.

0 голосов
/ 11 мая 2011

Вместо движка приложения вы можете использовать EC2. Browsermob и AlertFox работают на EC2 для запуска реальных браузеров для нагрузочного тестирования / мониторинга сервера. Технически это то же самое, что и выскабливание.

...