Текстовый браузер, работающий с JavaScript

Я ищу текстовый браузер с JavaScript. Он должен быть совместим с платформой Linux.

Другие особенности:

  • запустить JavaScript (это самое важное)
  • незначительный рендеринг CSS (цвета текста, цвета фона, возможно, границы)
  • поддержка XHR(должна быть, если работает js)
  • запустить в командной строке (терминал)

Есть рекомендации?

Я пробовал lynxи elinks( sudo apt-get install ...), оба не поддерживают JS.

Назовите меня сумасшедшим, но я думаю, что ссылки поддерживают javascript.
@dotVezz Если ты докажешь мне это, я дам тебе 100 баллов. :smile: Добавьте ответ с инструкциями, и я рассмотрю его. :-)
Я должен был немного погуглить, прежде чем комментировать. Поддержка Javascript по умолчанию недоступна. И он, и elinks имеют флаг компиляции --enable-javascript. По умолчанию « поддержка JavaScript была удалена в версии 2.1pre29, потому что она содержала ошибки ». Другими словами… Я бы, наверное, не стал заморачиваться со ссылками и электронными ссылками.

Ответы (5)

// , Рассмотрим brow.sh из-за его низкой пропускной способности, но чрезвычайно гибкой поддержки различных типов веб-страниц:

введите описание изображения здесь
https://www.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 и другие расширения.

Поскольку browsh требует мыши для взаимодействия с документом, я не думаю, что он очень хорошо подходит для использования в терминале.
// , Как вы в этом уверены?
Есть открытый пиар от 2018 года, но на этом все. github.com/browsh-org/browsh/issues

Lynx не поддерживает JavaScript, но Links поддерживает:

sudo apt-get install links

затем, чтобы скомпилировать ссылки с поддержкой JavaScript, используйте параметр конфигурации --enable-javascript, имейте в виду, что он содержит ошибки в соответствии с документацией.

Удачи

Кстати, текстовый браузер с поддержкой JS был бы для меня лучшим рождественским подарком. :-)
Пробовал, успешно скомпилировал, но разницы не вижу. Я открыл файл HTML, содержащий, alert(1)но ничего не отображается.
Даже если вы скомпилируете его с помощью JavaScript, я думаю, вам нужно отдельно включить его в конфигурации. См. ссылки.twibright.com/user_en.html#ap-javascript .
Использование @IonicăBizău alert- не лучший тест, потому что есть разница между «запуском Javascript» и «отображением окон предупреждений». Лучше протестировать document.write("hello world"), чтобы поместить тестовый текст в сам документ, потому что многие браузеры, которые полностью поддерживают Javascript, могут быть настроены на подавление окон предупреждений, поэтому «да, мы поддерживаем Javascript, но не окна предупреждений» является разумной позицией (поэтому если вам конкретно нужна поддержка алертбоксов, то боюсь вам придется об этом сказать☺)

Решение 2017 года:

Вот решение для рендеринга html+js в терминале:

Необходимый:

  • Chrome 59 или выше
  • Использование хрома в безголовом режиме позволяет отображать страницу с javascript через терминал!
  • (хотя он выводит необработанный html)
  • Отшельник
  • Просто преобразует необработанный html в читаемый текст в терминале!

Пример использования:

 $ 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
...

Это сработало!

Я попробовал, но получил: РАБОТАЕТ ли JavaScript, РАБОТАЕТ ли он в вашем веб-браузере. JavaScript НЕ РАБОТАЕТ в вашем веб-браузере . Есть идеи, что пошло не так? Должен ли я включить javascript в chrome (хотя только в командной строке)? Спасибо!
@Matifou, это произошло из-за того, что «неработающий» текст тестовой страницы находится в формате <noscript>, Chrome не удаляет элементы noscript из своего вывода DOM, а Hermit отображает noscript, потому что не ожидает, что Javascript будет выполнен. Чтобы скрыть <noscript>, нам понадобится либо (а) Hermit, который будет дополнен опцией «удалить noscript», либо (b) дополнительный Javascript, который каким-то образом будет внедрен на страницу для удаления noscript с помощью манипуляций с DOM в Chrome, или (c) добавьте что-то еще в набор инструментов для удаления noscript до того, как Hermit его увидит. (My Web Adjuster удаляет noscript, если js_interpreterон установлен)
Кстати, вы можете избежать установки Hermit, используя 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 здесь.

Я попробовал решение, предложенное @silas-s-brown. 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 веб-драйвера... готово
Продолжение комментария Дайсукеса сверху: [E 200620 10:15:28 настройщик: 2427] Исключение (<класс 'selenium.common.exceptions.WebDriverException'>, «Неожиданный выход службы phantomjs. Код состояния: 127, строка наладчика 2697») , настройщик строки 2390 при обновлении веб-драйвера, повторная попытка --- Но я смог использовать HeadlessFirefox и установил firefox-geckodriver, чтобы избавиться от вышеуказанной ошибки.
@DaisukeAramaki Спасибо, что отметили ваш опыт. Я рекомендую связаться с Сайласом, чтобы они могли устранить неполадки вместе с вами.
Мой ответ нуждается в обновлении: как обнаружил @DaisukeAramaki, более поздние версии Web Adjuster изменили старый --PhantomJSвариант на --js_interpreterпотому, что теперь есть 3 варианта на выбор (PhantomJS, HeadlessFirefox или HeadlessChrome). Поскольку PhantomJS больше не поддерживается, теперь я рекомендую использовать HeadlessFirefox или HeadlessChrome и использовать PhantomJS только в крайнем случае, если вы не можете установить ни один из них на используемой машине. Но для записи, я думаю, что код выхода 127 phantomjs может означать, что он не может выполнить двоичный файл (например, неправильная архитектура или проблемы с путями).

edbrowse

Непсевдографический браузер, похожий на 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
+1 за edbrowse, я пробовал некоторое время назад, но мне тоже хотелось бы рысьподобный интерфейс. edbrowse - это просто текст, из того, что я сею.
К сожалению, edbrowse также не поддерживает должным образом JS: github.com/CMB/edbrowse/issues/2 .