Как запустить браузер на сервере
У меня есть веб-сайт, и я анализирую некоторый контент из социальных сетей или других веб-сайтов, чтобы обновлять информацию. Как вы знаете, Instagram не будет работать с «beatifulSoup Python Parser» или, возможно, другими, только потому, что вам нужно войти в систему и иметь возможность запускать js , иначе он не загрузится . И с другими тоже бывает.
По этой причине я запускаю некоторый скрипт js на стороне клиента, используя консоль google chrome , этот скрипт сохраняет данные в localStorage , который я использую после.
Проблема в том, что иногда у меня низкая скорость интернета, или мне приходится запускать этот скрипт на своем компьютере, это занимает много времени. Может быть, не так много, но заниматься каждый день становится действительно проблематично.
Я хотел сделать эту работу на стороне сервера, всегда есть высокая скорость интернета, и я мог бы запустить скрипт с моего телефона , когда угодно и где угодно, и я пытаюсь понять, как это реализовать.
Мне нужен браузер на стороне сервера, который бы запускал js, и просто все то же самое, что и клиент .
- Запустите браузер
- Дождитесь загрузки страницы
- запустить какой-нибудь js-скрипт
Большинство серверов не имеют графического интерфейса и возвращают на терминал только html-код .
Зато есть куча хост сервисов, java серверов и все больше и больше, не только apach или nginx. На java, насколько я знаю, вы можете создать свой собственный браузер, так что это означает возможность запуска функции браузера на сервере .
Вопрос в том, есть ли готовые инструменты, которые я могу просто использовать, или, может быть, написать такую функциональность, но с использованием библиотек, фреймворков, чтобы иметь возможность написать это как можно быстрее, не тратя много времени. Поскольку я не работаю над созданием браузера на стороне сервера, я просто хочу иметь возможность запускать некоторые js.
Работаю с php, js, python. Java только SE и на клиенте. JavaEE имеет множество библиотек и массу возможностей. Может быть, кто-то знает, на каком языке я мог бы реализовать это. Любые фреймворки, или, может быть, на Linux это возможно, или есть хост-серверы, которые могут работать как клиент, некоторые компании, я думаю, нанимают такой персонал, чтобы выполнять какую-то работу автоматически.
Я думал о phantomjs или nodejs, но я новичок в них, и я думаю, что потратил бы много времени безрезультатно.
Любые советы, ссылки, мнения, идеи мне очень помогут, Спасибо.
Phantomjs работает, но вы не можете войти в систему с помощью Phantomjs, возможно, потому, что он не хранит файлы cookie или данные сеанса, или, возможно, нет заголовков, поэтому вместо использования программ веб- скрапинга просто используйте настоящий браузер на сервере .
PhantomJS действительно непростой, неудобный или что-то еще, для тестирования вы не получаете никакой информации, это занимает слишком много времени, вы не можете запустить только js-скрипт.
SetTimeout внутри оценки, похоже, не работает, даже проверка на это занимает много времени
EvaluateJavascript застревает (он не запустит phantom.exit(0)), вам нужно перезапустить cmd, перейти на cd и снова ввести все команды.
Очень простые манипуляции перерастают в огромные проблемы. Я не знаю, почему были созданы фантомы, только для того, чтобы просто захватить или сделать очень простой посох. Даже парсер от phantomjs ужасен. Там нет учебников, ничего полезного. Нет графического интерфейса, скрипт внутри оценки выглядит как запуск js неправильным образом, его действительно сложно идентифицировать и узнать, как он работает внутри. У вас нет никакого доступа, никакой информации, всякий раз, когда она возвращает пустую строку или просто ничего. Без ошибок, просто так. Было ли это популярно, я не знаю, я слышал раньше о фантомах, вроде ничего, некрасиво, бесполезно.
Я думал о webDriver, например, о селене, нет необходимости запускать селен на клиенте, запуск на сервере кажется немного дорогим. Нет хостинга, который дал бы вам vds с gui, а не сервер ubuntu, потому что вам нужен браузер.
I realized that there is no solution
у меня есть скрипт, который работает на js, и он имеет многофункциональность, не только синтаксический анализ, своего рода бот, который анализирует пользовательские данные, следит, отписывается, публикует данные и запускается, бросает пользователей. Вопрос был «Как запустить функциональность браузера на сервере», я просто хотел эмулировать браузер программой, запускаемой для 100 учетных записей на сервере одновременно, но я думаю, это невозможно. Возможно, я закрою вопрос с решением «Решения нет, вы не можете запустить браузер на сервере». Использование WebDriver слишком дорого. Программы нет, для вебдрайверов можно было бы использовать сразу Пример: Хром, Фаерфокс, Опера, Яндекс и вроде все, но они еще и используют много ОЗУ, что слишком дорого на VDS сервере.
У меня есть веб-сайт и парсинг некоторого контента из социальных сетей
или другие веб-сайты для обновления информации. Как Вам известно Instagram не будет
работать с «beatifulSoup Python Parser» или, возможно, с другими только потому, что вы должны авторизоваться, и должен быть в состоянии запустить JS, в противном случае он не будет загружаться. И это происходит с другими тоже.
По этой причине я запускаю скрипт js на стороне клиента, используя Google хромированная консоль, этот скрипт сохраняет данные в LocalStorage который я использую после.
Проблема в том, что иногда у меня есть низкоскоростной интернет, или мне приходится запускать этот скрипт на моем компьютере, это занимает много времени. Может быть, не так много, но делать каждый день, это становится действительно проблематичным.
Я хотел сделать эту работу на стороне сервера, всегда есть высокая скорость интернета, и я бы хотел возможность запустить скрипт с моего телефона, всякий раз, когда
или где-нибудь, и я пытаюсь понять, как реализовать.
Мне нужен браузер на стороне сервера, который будет запускать JS, и просто все, что такой же как клиент.
- Запустить браузер
- Дождитесь загрузки страницы
- запустить скрипт js
Большинство серверов не имеют графический интерфейс и вернусь на терминал просто HTML-код.
Но есть много хост-сервисов, java-серверов и многое другое, не только apach или nginx. На Java, как я знаю, вы можете создать браузер своих собственных,
так что это вроде как можно бежать функция браузера на сервере.
Вопрос в том, есть ли готовые инструменты который я могу просто использовать, или, может быть, написать такую функциональность, но используя библиотеки, фреймворки, чтобы иметь возможность писать это как можно быстрее, не тратя много времени. Поскольку я не работаю над созданием браузера на стороне сервера, я просто хочу иметь возможность запускать некоторые js.
Я работаю с php, js, python. Ява только SE и на клиенте. JavaEE имеет много библиотек и множество возможностей. Может кто знает на каком языке
я мог бы понять это. Любые фреймворки, или, может быть, на Linux это возможно, или есть хост-серверы, которые могут работать в качестве клиента, некоторые компании, я думаю, делают такого рода персонал, чтобы выполнять какую-то работу автоматически.
Я думал о фантомах или ноделях, но я для них новичок, и, думаю, я бы потратил много времени без результата.
Любые советы, ссылки, мнения, идеи очень помогли бы мне, спасибо .
Phantomjs работает, но вы не можете войти с помощью Phantomjs, возможно, потому что он не хранит cookie или данные сеанса, или, может быть, нет заголовков, поэтому вместо использования программ веб-скреппера просто используйте настоящий браузер на сервере
PhantomJS действительно неудобен, неудобен или что-то еще, для тестирования вы не получаете никакой информации, это занимает слишком много времени, вы не можете запустить только js-скрипт.
SetTimeout внутри оценки, кажется, не работает, даже проверка на это занимает много времени
valuJavascript зависает (он не запускает phantom.exit (0)), вам нужно перезапустить cmd и перейти к cd и снова ввести все команды.
Очень простые манипуляции перерастают в огромные проблемы. Я не знаю, почему фантомы были созданы, это было только для того, чтобы захватить или сделать действительно простой штат. Даже парсер из фантомов ужасен. Там нет учебников, ни одного использования. Нет графического интерфейса, сценарий внутри оценки выглядит так, как будто запускает js неправильно, действительно трудно определить и понять, как он работает внутри. У вас нет доступа, никакой информации, когда она возвращает пустую строку или просто нет. Никаких ошибок, просто ничего. Было ли это популярно, я не знаю, я слышал раньше о фантомах, кажется, просто ничего, безобразно, бесполезно.
Я думал о WebDriver, например, селен, нет необходимости запускать селен на клиенте, запуск на сервере кажется немного дороже. Нет хостинга, который бы давал вам vds с графическим интерфейсом, а не с сервером ubuntu, потому что вам нужен браузер.
У меня есть сценарий, который работает на JS, и он имеет несколько функций, а не только синтаксический анализ, своего рода бот, который анализирует пользовательские данные, следует, отписывает, публикует данные и запускает, бросает пользователей. Вопрос был «Как запустить функциональность браузера на сервере», я просто хотел эмулировать браузер с помощью программы, запускаемой сразу для 100 учетных записей на сервере, но я думаю, это невозможно. Возможно, я закрою вопрос решением «Нет решения, вы не можете запустить браузер на сервере». Использование WebDriver слишком дорого. Нет никакой программы, для веб-драйверов вы могли бы использовать сразу Ex: Chrome, Firefox, Opera, Yandex и, кажется, все, но они также используют много оперативной памяти, что слишком дорого на VDS-сервере.
Решение
Я думаю, что вы можете использовать phantomjs , Я использовал это для завершения многих пауков, которые нуждаются в операции входа в систему или загрузки JS.
Вы можете войти, используя Phantomjs, и он может установить cookie, данные сеанса и заголовки запроса. Все, что вам нужно сделать, это найти метод, как это:
phantomjs Войти в Instagram
Другие решения
Оба сценария вдохновили меня на создание утилиты, не требующей входа в систему. Это хорошее место для начала, по крайней мере.
привет всем. просьба не оставлять без ответа хочу при установке debian выбрать лишь установку х сервер. смогу ли я запусить полноценный браузер в таком случае? или научите ,что нужно сделать, чтобы запустить этот чертов браузер чисто из терминала не имея ничего кроме х сервера. спасибо
Конечно сможешь, вот это в .xinitrc напиши:
P. S. Запускать x-сервер вот так:
спасибо за ответы, но было бы просто офигенно, если бы они еще были понятны. вы пишите, что после того, как я выполню то что вы написали, то после этого вообще нормально запусить ничего не смогу. как это понимать?
Окружение это просто хомячковые программы, они не обязательны.
Чтобы запустить что-то ещё, тебе нужно будет переключаться в соседний терминал и запускать что-то, такскать окошки, ты, конечно, не сможешь.
ребета, стопэ. если я могу теоретически запускать приложения без графического окружения рабочего стола, то почему у меня не выходит такой фокус? : ctrl+alt+f1 -выхожу и через терминал пытаюсь запусить установленый уже у меня бразер. и ничего не выходит, выдает что приложение не нейдено. почему? что нужно сделать, что установить , чтобы все получалось на системе в которой кроме х сервера и установленного браузера ничего нет. браузер будет установлен через терминал
Покажи, что ты вводишь в терминал, и где у тебя x-сервер.
медведей учат ездить на велосепеде. может быть смогу. подробнее пожалуйста, что нужно сделать? устанаваливаю дебиан, выбираю при установке лишь х сервер. захожу в терминал, скачиваю deb пакет с браузером, устанавливаю его. и что, теоретически его можно запустить? если да , то как?
display=:0.0 путь до файла ну и тд
отлично))) спасибо ребята и еще минуту важего драгоценного времени. а если вообще взять и установить сервеный линукс. с него я смогу юзать интернет? в нем браузер полноценный могу запустить?
Серверный, тебе название не говорит? Сможешь.
в нем браузер полноценный могу запустить?
Сможешь.
Серверный линукс от обычного форматов исполняемых файлов не отличается.
не много поясню. я не хочу ничего видеть кроме терминала и приложения , которое я запущу через него. то есть установив debian сервер или убунту сервер смогу запусить на нем браузер яндекс или мозила например, так? если да, то как это сделать?
смогу запусить на нем браузер яндекс или мозила например, так?
Вот так, вроде, ставится мозилла.
я не хочу ничего видеть кроме терминала и приложения
В таком случае тебе больше подойдёт какой-нибудь ratpoison как оконный менеджер.
Просто без него браузер перекроет терминал, и придётся закрывать браузер, чтобы открыть терминал.
Я выше описал, там xterm открывается всё-таки.
запускал так firefox. жалкое зрелище: меню не работает, контекстное тоже не открывается, адресная строка и строка поиска ведут себя очень странно, стирая то, что пытаешься написать, выбор поисковика не работает.
лучше поставить какой-нибудь минимальный wm.
я просто так уже запутался, что не прочитал . извините
Делай так, как делает Mozilla.
TMW ставь и работай.
Для начала - запусти в консоле
Короче, не слушай ты этих красноглазых гентушников. У меня стоит Арч, но в дебиане все аналогично. Сначала ты устанавливаешь базовую систему с mini.iso образа, далее ставишь X-сервер (графику). Теперь, тебе нужен любой базовый виндовменеджер (WM) чтобы отрисовывать окошечки. Попробуй к примеру openbox либо dwm, это достаточно минималистичные вм. Потом устанавливай лису. Чтобы запустить графику с браузером, тебе нужен .xinitrc файл. Делаешь вот так:
$ cp /etc/X11/xinit/xinitrc ~/.xinitrc
Открываешь его в терминале через nano (командой nano ~/.xinitrc) и в самом конце тебе надо добавить примерно такие строки:
exec openbox & exec firefox
Запускать иксы командой startx
Чтобы переключаться между браузером и терминалом, используй ctrl+alt+F1 и ctrl+alt+F2
Хочу, чтобы клик по ссылке запускал указанную по ссылке программу с указанными параметрами. Без всяких вопросов. Клик - и крутится.
Такое сегодня хоть в одном браузере возможно?
А жаль. Вот бы дырище было :)
А что если это оформить в виде веб скрипта, крутящегося на каком-то простеньком сервере? А скрипт уже может запустить все что угодно.
запускай на локальной машинке простенький веб сервер, ссылка на странице пускай ведет на него, во время обработки запроса твой вебсервер пусть уже выполняет программку. Только надо будет повозиться с xauth, что бы вебсервер от своего псевдопользователя смог запускать проги в сессиях обычных юзеров.
>Такое сегодня хоть в одном браузере возможно?
ага, rm -rf? размечтался!
>А что если это оформить в виде веб скрипта, крутящегося на каком-то простеньком сервере?
Слишком геморройно. Коллекция и веб-сервер на одной машине, просмотр и запуск (по NFS) - с другой. Вариант - с сервера делать ssh+exec на другую машину не особо покатит, так как смотреть нужно с разных машин :) Хотя, если определять на ком запускать по IP. Можно, но всё равно геморройно.
Да, в IE2 это работало и было очень удобно для интранета :)
хотя можно заюзать и фишки xul
Под Linux есть ActiveX?
Да поставь винду, и скажи себе "да зато у меня линакс на сервере".
ЗЫ NFS клиент под винду должен быть, сам видел 100 лет назад.
Или можно через хелпер-аппликейшн. Когда браузер сам стартует прогу по типу файла.
> Коллекция и веб-сервер на одной машине, просмотр и запуск (по NFS) - с другой.
Дурацкий вопрос. Как запустить из HTML программу по ссылке? :)
Дурацкий ответ: По клику на ссылке javascript пишет в cookie команду с параметром. А демон (по inotify) парсит файл (sqlite базу) кукисов и исполняет команду.
Почему бы не передать в адресной строке команду с параметром?
Почему бы не передать в адресной строке команду с параметром?
Передать куда/кому? Локальному демону? Можно и так. Можно по-быстрому накостылить скрипт с netcat в качестве сетевого интерфейса.
>Под Linux есть ActiveX?
Но есть Java Plug-in.
Если апплет распространять с сертификатом (подписанный апплет), которому доверяет пользователь, то можно запускать сторонние приложения из апплета, давать апплету такие же права, как локальному приложению.
Но не всякий пользователь захочет/сможет импортировать сертификат для доверенных апплетов в собственное хранилище ключей Java (JKS).
ну это для лохалкоста, так что пойдет
Конкретные функции не помню, но идея такова: яваскрипт ведь умеет писать в файлы? Написать драйвер для абстрактной фс, которая делает только одно - выполянет команду, переданную в файле. Когда ты нажимаешь на ссылку, яваскрипт создаёт на этой фс файл с требуемой тебе командой, и «фс» исправно выполняет команду.
чет я не догоняю. В любом браузере есть возможнсть открытия файлов разных типов (скорее всего MIME) разными прогами. Почему нельзя открывать выполяемые файлы bash'ем, например.
С параметрами думать надо.
А ещё можно браузер настроить на то, чтобы открывал данный тип ссылок данной программой.
> Конкретные функции не помню, но идея такова: яваскрипт ведь умеет писать в файлы?
> ну это для лохалкоста, так что пойдет
Для локалхоста можно вообще greasemonkey поставить со всеми правами на локальные файлы.
А если посмотреть в сторону джава-апплета?
А что, в этих ваших линуксах браузеры позволяют запускать файлы? НЕ ВЕ РЮ
Как-то браузеры могут iTunes открывать. Вот в эту сторону нужно и копать.
если правильно скучерявится то могут
Я так понимаю, можно сделать custom protol (exe:// например). Нужно просто ассоциации правильно прописать.
>ЗЫ NFS клиент под винду должен быть, сам видел 100 лет назад.
Угу. Но только даже сегодня нет работающего с русскими именами или со всякими «:» в имени.
Не катит. Мне нужно разное виде запускать в разных плейерах. Скажем, есть такие, которые только vlc корректно показывает. Как из mythtv вызывать vlc или kaffeine? Опять же, мне нужен просмотр деталей о фильма в виде полноценной страницы - с обложкой, сюжетом, ролями. Писать свой плагин? Проще придумать что-то с нормальным браузером. Ну и я так и не добился от mythtv безупречной работы. То с русским проблемы, то тормозит, то глючит.
Смартфон есть практически у каждого современного человека, поэтому найти информацию не так сложно. Но что делать, если вам надо скачать файл на удалённом сервере с помощью терминал? Вы можете найти ссылку и скачать его с помощью утилиты wget. А что если она длинная и набрать её не так просто? Выход есть – консольный браузер.
В этой статье мы собрали лучшие консольные браузеры для Linux. С их помощью вы можете не только найти и скачать файлы, но и оставить закладки для быстрого доступа к нужным страницам. Но использовать консольные браузеры на постоянной основе у вас не получится.
Лучшие консольные браузеры для Linux
1. Lynx
Lynx – это один из первых веб-браузеров. Он появился в далёком 1992 году и, что удивительно, разрабатывается по сей день. Он не может похвастать удобством использования и поддержкой JavaScript, но всё же с его помощью можно получить базовую функциональность. Подсказки по управлению находятся в нижней части.
Команды для установки Lynx с помощью менеджера пакетов apt:
sudo apt install lynx
С помощью менеджера пакетов RPM:
sudo yum install lynx
2. Links (Links2)
Links – это, пожалуй, лучший консольный браузер. Lynx-подобный, именно так называют свой браузер разработчики. Но это утверждение верно лишь отчасти. На деле же их роднит только одно – текстовый режим. Одно время существовало две версии браузера, но установив Links2 вы получите всё тот же Links, версия программы одна и та же – 2.2x.
Управление сделано удобно. Запоминать комбинации клавиш не требуется, всё необходимое есть в панели инструментов (вызывается клавишей Esc). Курсор также работает, панель можно вызвать, кликнув по первой строке. Заявлена поддержка скриптов, но на деле это не сильно улучшает отображаемые страницы. Стоит отметить наличие графического режима (у Links2), который по сути представляет то же самое, но с возможностью отображения картинок. При скачивании файлов они сохраняются в той же директории, из которой был вызван браузер. Искать скачанные программы, скрипты и конфигурационные файлы не придётся.
Команды для установки Links для apt:
sudo apt install links
sudo yum install links
3. Elinks
Elinks – это ответвление Links. Этот браузер лучше работает с цветом, что улучшает восприятие страницы. Однако, из-за ограниченной поддержки скриптов и таблиц стилей, результат может оказаться противоположным. Используйте команду Shift+5 для переключения режимов.
Управление осуществляется схожим образом, но в Elinks элементы расположены несколько иначе. Да и в целом организация меню более интуитивна. Последняя версия вышла в 2012 году. Но даже она во многом превосходит Links, который обновляется до сих пор.
Команды для установки Elinks в Ubuntu или Debian:
sudo apt install elinks
В CentOS, Fedora или RedHat:
sudo yum install elinks
4. w3m
w3m, в отличие от предыдущих браузеров, вышел уже во время повсеместного использования интернета, в 2011 году. Если терминал поддерживает курсор, то можно получить доступ к элементам управления через контекстное меню (правая кнопка мыши). Если же возможности использовать мышь нет, обратитесь к подсказке (H), чтобы узнать горячие клавиши.
Скрипты поддерживаются частично, но опять же, текстовый браузер в принципе не способен иметь полноценную поддержку JavaScript. Нельзя не упомянуть то, что браузер доступен в виде плагина для Emacs.
Команды для установки w3m в apt:
sudo apt install w3m
sudo yum install w3m
5. Browsh
Браузер Browsh интересен в первую очередь тем, что способен наиболее полно отобразить страницу. Нет, это не самостоятельный браузер. Он базируется на Firefox, который работает в фоне. Иными словами, изображение рендерится полноценным браузером, а затем переводится в текст.
Выводы
Это все лучшие консольные браузеры для Linux. Самым удобным и функциональным из них бесспорно является Links и его ответвление Elinks. Он не только имеет самый простой интерфейс, но и способен хоть как-то, но отображать современные сайты. С его помощью вы без особых проблем скачаете файлы по прямым ссылкам. В противном случае можете скачать файлы на смартфон и запустить на нём сервер FTP, чтобы получить доступ к ним извне.
Браузер Browsh выглядит перспективно, но пока что находится на ранней стадии разработки и малопригоден для использования. Но сам факт того, что отображается практически все содержимое страницы впечатляет. А приходится ли вам использовать консольный браузер? Как отображает страницы ваш терминал? Делитесь своим мнением в комментариях.
Читайте также: