Я ищу текстовый браузер с JavaScript. Он должен быть совместим с платформой Linux.
Другие особенности:
XHR
(должна быть, если работает js)Есть рекомендации?
Я пробовал lynx
и elinks
( sudo apt-get install ...
), оба не поддерживают JS.
// , Рассмотрим brow.sh из-за его низкой пропускной способности, но чрезвычайно гибкой поддержки различных типов веб-страниц:
Он также имеет умный способ использования поддержки True color в терминалах для рендеринга изображений и поддерживает современные замены для SSH, такие как MOSH .
Вот несколько демонстрационных страниц:
html.brow.sh
Использует очень простую графику и теги привязки HTML. Хотя эта служба может показаться похожей на терминальный клиент, она еще не имеет паритета функций.text.brow.sh Не
использует ничего, кроме чистого текста, лучше для использования, например, с завитком.
Для демонстрации браузера,ssh brow.sh
Вы также можете установить его через docker pull
:
docker pull browsh/browsh
Поскольку brow.sh — это Firefox под капотом, вы можете установить Adblock и другие расширения.
Lynx не поддерживает JavaScript, но Links поддерживает:
sudo apt-get install links
затем, чтобы скомпилировать ссылки с поддержкой JavaScript, используйте параметр конфигурации --enable-javascript
, имейте в виду, что он содержит ошибки в соответствии с документацией.
Удачи
alert(1)
но ничего не отображается.alert
- не лучший тест, потому что есть разница между «запуском Javascript» и «отображением окон предупреждений». Лучше протестировать document.write("hello world")
, чтобы поместить тестовый текст в сам документ, потому что многие браузеры, которые полностью поддерживают Javascript, могут быть настроены на подавление окон предупреждений, поэтому «да, мы поддерживаем Javascript, но не окна предупреждений» является разумной позицией (поэтому если вам конкретно нужна поддержка алертбоксов, то боюсь вам придется об этом сказать☺)Решение 2017 года:
Вот решение для рендеринга html+js в терминале:
Необходимый:
Пример использования:
$ google-chrome --headless --disable-gpu --dump-dom https://javatester.org/javascript.html | hermit
$ chromium --headless --disable-gpu --dump-dom https://javatester.org/javascript.html |html2text
Выход:
...
Your web browser supports JavaScript version 1.7
...
Это сработало!
<noscript>
, Chrome не удаляет элементы noscript из своего вывода DOM, а Hermit отображает noscript, потому что не ожидает, что Javascript будет выполнен. Чтобы скрыть <noscript>
, нам понадобится либо (а) Hermit, который будет дополнен опцией «удалить noscript», либо (b) дополнительный Javascript, который каким-то образом будет внедрен на страницу для удаления noscript с помощью манипуляций с DOM в Chrome, или (c) добавьте что-то еще в набор инструментов для удаления noscript до того, как Hermit его увидит. (My Web Adjuster удаляет noscript, если js_interpreter
он установлен)lynx -stdin -dump -nolist
вместо hermit
, но в любом случае вы получите текст из <noscript>
включенного, если вы каким-то образом не удалите его.Начиная с версии 0.23, Web Adjuster имеет опцию PhantomJS, которая может частично активировать Javascript в любом браузере с помощью PhantomJS. Я говорю «частично», потому что он (пока?) не работает с формами POST и ссылками только на Javascript, но он подходит для чтения текста страницы, для которой требуется Javascript, прежде чем показывать вам этот текст.
sudo apt-get install python-selenium # or sudo yum install python-selenium
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-i686.tar.bz2
tar -jxvf phantomjs-2.1.1-linux-i686.tar.bz2
cd phantomjs-2.1.1-linux-i686/
sudo mv bin/phantomjs /usr/local/bin/
cd ..
sudo apt-get install python-tornado # or sudo pip-install tornado
wget http://ssb22.user.srcf.net/adjuster/adjuster.py
python adjuster.py --js_interpreter=PhantomJS --real_proxy
и в другом окне или вкладке
http_proxy=http://localhost:28080 lynx http://site-that-needs-javascript.example.com/
Раскрытие информации: сопровождающий Web Adjuster здесь.
adjuster.py
хочет ` sudo apt install firefox-geckodriver python Adjuster.py --js_interpreter=HeadlessFirefox --real_proxy ` Я получаю сообщения об ошибках: Web Adjuster v0.305 (c) 2012-20 Silas S. Brown Лицензия Apache License, версия 2.0 Прослушивание порта 28080 Запуск 1 веб-драйвера... готово--PhantomJS
вариант на --js_interpreter
потому, что теперь есть 3 варианта на выбор (PhantomJS, HeadlessFirefox или HeadlessChrome). Поскольку PhantomJS больше не поддерживается, теперь я рекомендую использовать HeadlessFirefox или HeadlessChrome и использовать PhantomJS только в крайнем случае, если вы не можете установить ни один из них на используемой машине. Но для записи, я думаю, что код выхода 127 phantomjs может означать, что он не может выполнить двоичный файл (например, неправильная архитектура или проблемы с путями).Непсевдографический браузер, похожий на ed
интерфейс.
Документация: http://the-brannons.com/edbrowse/usersguide.html
Демонстрационная сессия:
$ edbrowse http://softwarerecs.stackexchange.com/
no ssl certificate file specified; secure connections cannot be verified
no trailing newline
74558
6590
# Let's print the beginning of the page
1,20p
{current community}
*
{chat}
{blog}
{Software Recommendations}
*
{Software Recommendations Meta}
your communities
{Sign up} or {log in} to customize your list.
{more stack exchange communities}
# Seach field is not here yet.
# Pressing "Enter" until we find it
{Stack Exchange}
{sign up}
{log in}
{tour}
{help}
* {Tour Start here for a quick overview of the site}
* {Help Center Detailed answers to any questions you might have}
* {Meta Discuss the workings and policies of this site}
<> <Go implicit>
# Here it is. Let's find the line number
n
32
28,32n
28 * {Help Center Detailed answers to any questions you might have}
29 * {Meta Discuss the workings and policies of this site}
30 <> <Go implicit>
31
32
30
<> <Go implicit>
# We are now focused on the search field.
i=text browser
<text browser> <Go implicit>
i*
submitting form
76944
10997
# OK, we have searched. Let's enumerate the results.
# First 30 lines are probably fluff, so begin with 40'th line
40,60p
* {Ask Question}
Search
<text browser>|<search>
127 results
{relevance}
{newest}
{votes}
{active}
10
votes
1answer
# Pressing Enter for more lines
{Q: Text based browser that runs JavaScript}
I am searching for a text browser running JavaScript.
It should be compatible with Linux platform. Other features:
# OK, we are here. Let's follow the link
n
63 It should be compatible with Linux platform. Other features:
58,62n
58 10
59 votes
60 1answer
61 {Q: Text based browser that runs JavaScript}
62 I am searching for a text browser running JavaScript.
61
{Q: Text based browser that runs JavaScript}
g
74946
7226
50,80p
{Text based browser that runs JavaScript}
up vote 10 down vote {favorite}
1
I am searching for a text browser running JavaScript.
It should be compatible with Linux platform.
Other features:
* run JavaScript (this is the most important)
* minor CSS rendering (text colors, background colors, borders maybe)
* support XHR (is supposed to do if it runs js)
* run in command line (terminal)
Any recommendations?
I tried lynx and elinks (sudo apt-get install ...), both not supporting JS.
{linux}
{open-source}
{web-browser}
{command-line}
{share}
{improve this question}
asked Sep 22 '14 at 18:02
{image}
{Ionic\u0103 Biz\u0103u}
3589
|
2
Call me crazy, but I think {links} supports javascript.
- {dotVezz} Sep 23 '14 at 16:38
@dotVezz If you prove me that, I will give you 100 points. :smile:
Add an answer with the instructions and I will review it.
:-) - {Ionic\u0103 Biz\u0103u} Sep 23 '14 at 16:54
I should have done some google-fu before I commented.
Javascript support is not available by default.
Both it and elinks have an --enable-javascript compile flag.
By default, "{JavaScript support was removed in release 2.1pre29 because it
was buggy.}" So in other words... I probably wouldn't bother with links and elinks.
- {dotVezz} Sep 23 '14 at 19:47
add a comment
# Let's try to add a comment
n
107
100,107n
100 By default, "{JavaScript support was removed in release 2.1pre29 because it
101 was buggy.}" So in other words... I probably wouldn't bother with links and elinks.
102 - {dotVezz} Sep 23 '14 at 19:47
103
104
105 add a comment
106
107
105
add a comment
# OK, enough for now.
# I don't know why "add a comment" is not shown as a link
q
точкаВезз
Ионика Бизэу
точкаВезз