Я хочу использовать селен или ветряную мельницу внутри движка Google для того, чтобы очистить сайт, заполненный JS. Я знаю, что ветряная мельница написана на python и javascript.
Возможно ли это? Если это так, как вставить библиотеку?
Если нет, можете ли вы объяснить, почему и предоставить альтернативы?
Спасибо.
Я искал еще немного и видел, что scrapy - чистый питон.
Будет ли это работать? Он обрабатывает javascript?
Как Selenium, так и ветряная мельница (которые, как полагают, теперь являются unmaintaned), являются контроллерами для реального браузера. Обычно они создают реальный браузер (например, Firefox) в качестве подпроцесса и контролируют его. Я не думаю, что вы можете сделать это в AppEngine. Ближайшая вещь для браузера с чистым кодом, о котором я знаю, htmlunit, помещает эту Java. Насколько я знаю, для Python нет эквивалента.
Любая библиотека "scraping" на языке python вряд ли сможет интерпретировать javascript для вас на appengine, поскольку для этого, вероятно, потребуется какое-то C-расширение (например, привязка к spidermonkey или v8), что было бы против изолированной звуковой системы GAE.
Но, если бы вы отправились на сторону Java, вам, возможно, повезло больше. Я знаю, что вы можете получить Rhino, работающий на AppEngine, с небольшой помощью env.js вы можете эмулировать DOM, быстрый google показывает набор инструментов очистки для Java. Это просто вопрос связывания всего этого.
HtmlUnit Похоже, он пытается сделать именно это, но неясно, насколько он в настоящее время удобен для приложений, поскольку он кажется резьбовое.
Я считаю, что и Selenium, и Windmill позволяют вам управлять браузером, а не имитировать. Они ожидают запуска в среде рабочего стола и приводят настоящий браузер, чего вы не можете сделать с App Engine.
Вы можете использовать API API URL-адресов и парсер HTML, например BeautifulSoup, чтобы обрабатывать очистку страницы из App Engine.
Вместо механизма App вы можете использовать EC2. Browsermob и AlertFox работают на EC2 для запуска реальных браузеров для тестирования нагрузки/мониторинга серверов. Технически это то же самое, что соскабливание.