Оценить JavaScript на локальный HTML-файл (без браузера)

Это часть проекта, над которым я работаю.

Я хочу автоматизировать сайт Sharepoint, особенно для извлечения данных из базы данных, к которой у меня и моих коллег есть только внешний доступ.

Я, наконец, сумел получить механизм (в python) для достижения этой цели, используя Python-NTLM и исправив часть его исходного кода, чтобы исправить повторяющуюся ошибку.

Теперь я надеюсь, что это мой последний контрольно-пропускной пункт: часть формы, которую мне нужно отправить, похоже, является выводом функции JavaScript:| и о чудо... Механизация не поддерживает JavaScript. Я не хочу эмулировать функциональность javascript в python, потому что в идеале мне хотелось бы использовать повторно используемое решение...

Итак, кто-нибудь знает, как я могу оценить javascript в локальном HTML, который я загружаю с sharepoint? Я просто хочу как-то запустить javascript (чтобы завершить загрузку страницы), но без браузера.

Я уже изучил селен, но он довольно медленный для того объема работы, который мне нужен, чтобы завершить работу... В настоящее время я изучаю PyV8, чтобы попытаться оценить javascript самостоятельно... но, безусловно, должно быть приложение или библиотека (или что-нибудь) что может сделать это??

2 ответа

Ну, в конце концов я пришел к следующим возможным решениям:

  • Запустите Chrome без заголовка и получите вывод html (спасибо koenp за ссылку!)
  • Запустите PhantomJS, безголовый браузер с API Java
  • Запустите HTMLUnit; то же самое, но для Java
  • Используйте Ghost.py, браузерный безголовый браузер на основе Python (который я почему-то не видел нигде где-нибудь!)
  • Напишите интерпретатор JavaScript на основе DOM, основанный на Pyv8 (движок javascript Google v8), и добавьте его в мое текущее "половинное решение" с помощью mechanize.

На данный момент я решил использовать либо Ghost.py, либо мою собственную модификацию PySide/PyQT Webkit (как работает ghost) для оценки javascript, так как, очевидно, они могут работать довольно быстро, если вы оптимизируете их, чтобы не загружать изображения и отключать графический интерфейс

Надеюсь, другие найдут этот список полезным!

Что ж, вам понадобится что-то, что понимает DOM и понимает Javascript, так что все сводится к какому-то безголовому браузеру. Может быть, вы можете взглянуть на селеновый вебдрайвер, но я думаю, вы уже это сделали. Я не думаю, что есть простой способ сделать это, не запуская вещи в самом движке браузера.

Другие вопросы по тегам