Рысь с JavaScript

Поэтому я написал скрипт на PHP, для работы с которым требуется JavaScript. Мне было трудно найти решение о том, как запустить javascript с помощью php одновременно с помощью какого-либо инструмента linux, чтобы сделать его автоматическим (поскольку запускать его в моем браузере не вариант, мне нужно, чтобы он был crontab). Использование команды "php" также не является выбором, так как она не запускает javascript. Поэтому я нашел решение, это была рысь.

Итак, вот моя проблема: по какой-то причине javascript прекрасно работает в моем браузере, но не в lynx. Используя lynx, страница просто загружается без участия javascript. Есть ли способ отладки javascript в lynx, вроде того, что есть в google chrome, где вы можете посмотреть, что происходит с консоли, чтобы я мог выяснить, почему скрипт не запускается в lynx?

Редактировать:

Таким образом, по-видимому, рысь не поддерживает JavaScript. В таком случае, мой вопрос, что делает? Мне нужно запустить этот скрипт, как браузер, но из командной строки Linux. И если ОС имеет значение в этом случае, я использую последнюю версию Ubuntu.

5 ответов

Решение

Рысь не поддерживает Javascript.

Обновление 1

Исходя из вашего резюме того, что вы пытаетесь сделать (войдите на сайт, который требует JavaScript для шифрования пароля), я настоятельно рекомендую вам взглянуть на использование Selenium или другого пакета автоматизации браузера. Даже если вы получите правильную отправку пароля без такого слоя, у сайта могут возникнуть другие проблемы, если вы используете минималистский браузер, такой как Lynx.

Lynx не поддерживает JavaScript, но альтернативный текстовый браузер ELinks поддерживает SpiderMonkey. Это несколько экспериментально, хотя; см. руководство по его компиляции.

Кроме того, я действительно озадачен тем, что вы пытаетесь достичь здесь...

То, что вам нужно, называется браузером без головы. Например, PhantomJS является одним из них. Я думаю, что это самый популярный.

Если вы хотите выполнять только Javascript из командной строки, я бы посоветовал вам что-то вроде nodejs или otto. Они имеют гораздо меньшую производительность, чем целый безголовый браузер.

Если вам нужно больше, чем просто простой Javascript, например, DOM или около того, вы должны попробовать браузер без головы ( Chrome, PhantomJS), как советуют другие.

Если вам нужен не только браузер, но и вы хотите проводить автоматическое тестирование с этим браузером, Selenium по-прежнему остается в пути.

Это действительно зависит от вашего варианта использования, сколько вам нужно.

Обновление: уже через несколько месяцев можно использовать Chrome в качестве браузера без монитора (Firefox тоже в пути).

Селен - это путь, но, как вы заметили, ему нужен дисплей. Который затем должен быть запущен, и yada yada yada, теперь у вас есть довольно сложная установка!!

К счастью, есть еще один способ автоматизировать все это, и это через инфраструктуру автоматизации. Я рекомендую Дженкинс. У него уже есть дополнение для запуска x-сервера.

Итак, примерный конвейер выглядит следующим образом:

  • Забудьте о cront ab
  • Установите сервер jenkins для Ubuntu (с установленным x)
  • Установите аддон jenkins xvncserver(?) - думаю, так он и называется. В любом случае это автоматически запустит для вас XHOST.
  • Напишите сценарии Selenium Webdriver, которые идут в указанное место (проще всего * использовать Selenium IDE)
  • Пусть селеновая среда разработки выведет сценарии веб-драйвера в любой формат, а затем запустит jenkins. Я лично использую формат Java, затем использую ant для их сборки.

Как вы можете себе представить, это довольно сложная установка, но технически она будет делать то, что вы просите. Извините, это не так просто, как отправка wget в lynx.

Другой способ - просто переписать вашу веб-страницу в DO STUFF, не предполагая, что браузер, например, принимает параметр GET, который переводит его в "автоматический режим", а затем он будет предполагать, что он запускается из cron и делает это счастье через более короткую схему.,

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