2010-03-12 4 views
1

Кто-нибудь знает о http-клиенте, который хорошо разбирается в скриптах (т. Е. Основы, получает, сообщения) и способен выполнять javascript (все, а не только перенаправление адресов)? И тот, который не просто запускает другой браузер.http клиент, который выполняет javascript ...?

+0

Насколько я знаю, такого существа не существует. Вы могли бы встроить V8 Google в приложение на основе lynx, и это, вероятно, сделает это. Или завиток + V8, может быть. –

+0

Вы должны представить это как ответ. – Zombies

ответ

0

Насколько я знаю, такой вещи нет (хотя я слежу за этой нитью, надеясь, что это будет неправильно).

Однако, если вы готовы засучить рукава и сделать какую-то работу, тогда должно быть возможно реализовать вещь, основанную на Firefox, с помощью скрипта xul - или вы можете рассмотреть, например, rhino - который является javascript engine без браузера.

Elinks - это текстовый браузер с javascript - поэтому, вероятно, было бы проще запустить это в pty по сравнению с внедрением собственного компонента браузера и разоблачением DOM носорогу.

2

Теперь есть инструменты для достижения именно того, что вы просите. Лучшим классом инструмента, если не единственным, является, вероятно, «».

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

PhantomJS в основном является браузером WebKit без какого-либо дисплея, поэтому все логика компоновки, JavaScript и т. Д. Находятся вместе с базовым HTTP-клиентом, как в браузере, потому что это браузер.

PhantomJS предоставляет какой-то интерфейс в JavaScript, но, по-видимому, его не так просто использовать самостоятельно. Другой проект появился, чтобы сделать его более полезным, CasperJS.

Еще один проект заслуживает упоминания здесь, SpookyJS. Работа заключается в том, чтобы выступать посредником между node.js и PhantomJS, так как оба реализуют цикл событий JavaScript, непросто их интегрировать. С SpookyJS вы можете сценаризировать HTTP-клиент в JavaScript на своем рабочем столе или на сервере.