LINUX.ORG.RU

консоль безголового firefox в консоли

 ,


0

1

Здраствуйте

Вопрос первый:

Для просмотра разных онлайн-TV в mpv частенько использую грязноватый трючок: после нажатия «» лезу в консоль firefox, смотрю там, что браузер затягивает, вижу среди прочего линк на какой-нибудь ***somename.m3u, скармливаю этот линк плееру и спокойно смотрю, не грузя браузер лишним окном и лишней открытой в нём страницей.

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

И вот с этого момента я призадумался о headless mode. Насколько я смог понять эту безынтерфейсность, так это то, что режим «консольный», то есть запускается в терминале и в этом же терминале вместо GUI с помощью CLI в диалоговом режиме с пользователем и общается.

Я пробую после запуска firefox -headless вбивать что-то типа «screenshot --clipboard --fullpage» с нулевым профитом от этого.

Поисковик шлёт меня постигать дебри питоновых селениумов, и постижение продвигается плохо - я туп, ленив, невежественен, и ужасно себя чувствую.

В связи с этим вопрос к знающим людям: есть ли какой-нибудь простой способ к осуществлению моего замысла: «запустить в консоли консоль браузера не тратя ресурс на его интерфейс», или всё-таки единственный путь - это всё это учить да ещё небось и с яваскриптами? Цель-то тривиальнейшая: в консоли командой «нажать кнопку на плеере», погрепать активность и выцепить m3u.

Спасибо за внимание.

★★★★★

Последнее исправление: piyavking (всего исправлений: 6)

Ответ на: комментарий от MoldAndLimeHoney

вот чем:

~ $ url='https://online-tv.live/shokiruyushchee-hd.html';yt-dlp --embed-metadata --embed-thumbnail --audio-multistreams --video-multistreams -g "$url"
WARNING: [generic] Falling back on generic information extractor
ERROR: Unsupported URL: https://online-tv.live/shokiruyushchee-hd.html

Это медиастрим, а не онлайн-видео, yt-dlp тут буксует. А временный линк https://tvcdnpotok.com/2ZQuLPMYQf00tslfpyTeSQ/169/1725269974/index.m3u8 , тем не менее, в консоль браузера вываливается исправно и замечательно просматривается мной сейчас в mpv.

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 3)
Ответ на: комментарий от anonymous

Медиаконтент из запущенного браузера я и без расширения дёрну. Но мне надо медиапоток (это другое, повторюсь), и с запуском браузера без GUI только для отлова линка. После отлова безголовый браузер, само собой, предполагается прибить.

piyavking ★★★★★
() автор топика
Ответ на: комментарий от Bfgeshka

Я тоже не хочу дебажить скрипты, их сам браузер отлично дебажит. Конкретный сайт просить на форуме раздербанить? Не настолько низко я пал. Мне надо понять, как дербанить сайты самому)

piyavking ★★★★★
() автор топика
Ответ на: комментарий от anonymous

И эту кнопку средствами безголового браузера мне надо будет консольной командой нажать и грепать после этого выхлоп, всё правильно. И зачем мне для её отлова искусственный интеллект? Вот кнопку-то, в отличие от временного медиапотоколинка, даже упомянутый здесь curl увидит, а уж регулярку для неё я придумаю.

Естественно, на каждом сайте кнопка ловится по-своему, то, что сайты друг от друга отличаются - это я понимаю)

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 2)
Ответ на: комментарий от anonymous

дебаж код загрузки контента конкретного сайта

Трагедия в том, что я понятия не имею, как это делается. Собственно, примерно об этом и пост. Кнопку-то я поймаю, мне её нажать надо. Чтоб нажать, нужна консоль браузера. Консоль запущенного в терминале безголового браузера.

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 1)
Ответ на: комментарий от anonymous

Я не хочу, чтоб за меня кто-то грепал код страниц или скрипты терзал и всё такое.

Я просто хочу иметь доступ к консоли безголового браузера в консоли линукса, остальное уж сам допилю.

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 2)
Ответ на: комментарий от piyavking

Быстрее разберешь код загрузки и вытащишь алгоритм получения ссылки на контент, чем почти то же самое сделаешь из под безголового дебагера.

Безголовый дебагер возможно будет нужен только если ссылка на видео будет валидна для текущей сессии, чтобы инициировать и держать сессию.

anonymous
()
Ответ на: комментарий от anonymous

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

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 1)
Ответ на: комментарий от anonymous

то есть плюнуть в принципе на этот дебаггинг, и просто поснифать что он станет тянуть, а поснифованное погрепать? Но кнопку-то мне всё равно как-то надо будет нажать...

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 1)

«запустить в консоли консоль браузера не тратя ресурс на его интерфейс»

Таких браузеров много, в либах qt, на java httpclient. Можно просто дампить страничку. Далее надо парсить html в поисках линка и скармливать его плееру. Но при всех этих вариантах без программирования не обойтись, хоть оно и простецкое.

Ygor ★★★★★
()

lynx, ёлы-палы. links в последнее время тоже неплох, но там функциональность чуть меньше.

А на самом деле, самая лучшая чистилка для файрфокса: откываешь mc (Midnight Commander), находишь каталог ./mozilla и - грохаешь его. Делов-то.

cadaber ★★
()
Последнее исправление: cadaber (всего исправлений: 1)
Ответ на: комментарий от cadaber

Знаю лучше чистилку: вытаскиваешь SD карту и - перекусываешь её пополам. Производительность аж за горизонт улетает.

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 1)
Ответ на: комментарий от demidrol

Скорее пытаюсь понять что это вообще и надо ли мне именно это. Все ссылки ведут на этот ваш селениум, и он вообще для меня новые ворота.

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

piyavking ★★★★★
() автор топика

Тебе придется надеть длинные и толстые резиновые перчатки и испачкаться селениумом… Больше никак.

Делал я как-то скрипт для просмотра видео в mpv с сайта. Задача простенькая: открыть сайт в браузере, выбрать фильм, выставить качество и озвучку, после чего нажать ctrl+p и видео должно открываться в mpv… В это время скрипт, запоминал выбор качества и озвучку и вытаскивал длинный url с сайта и запускал. Промудохался я тогда неделю, если небольше.

anonymous
()
Ответ на: комментарий от darktic

Из запущенного с гуём браузера этот м3у получить - как два пальца обработать, и аддонов никаких не надо.

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

piyavking ★★★★★
() автор топика

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

Может типа такого что-то посмотреть? https://github.com/Rasukarusan/shellnium

Ну, или, если совсем лень, закинь в Job, тебе хелловорлд для одного типового кейса сделают, дальше будешь его просто править под случай.

faq2
()
Ответ на: комментарий от piyavking

Да… и.. насчёт обмазаться - есть питонячьи биндинги, ищи всё что ищешь прост с приставкой python. Т.к. с питоном обмазываться имхо приятнее, чем с замыканиями на замыканиях замыканий в этом вашем ES6.

faq2
()
Ответ на: комментарий от faq2

Обалденная штука. С первого взгляда вошла в мозг, как нож для колки льда, не то, что этот ваш селениум). Походу это действительно то, что мне надо, посплю и начну, спасибо большое!

piyavking ★★★★★
() автор топика
Ответ на: комментарий от piyavking

Есть ещё один забавный нюанс - большинство сайтов в проде детектируют и блокируют безголовый режим selenium. Для этого есть хаки, типа standalone chromium в составе самого же selenium как проекта.

faq2
()
Ответ на: комментарий от faq2

а вот этот шеллиум детектят?

апдейт: пробую demo.sh, пишет:

[ERROR] chromedriver is not running

Это значит, что мне хромиум надо ставить?, а он в убунту снаповый. Снап я приморозил и размораживать не буду(

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 2)
Ответ на: комментарий от anonymous

В данный момент не сколько ленивый, сколько отупевший от неприятных ощущений - свежесломанная нога ощутимо влияет на когнитивные способности)

Нет худа без добра - подтянул curl до актуальной версии. Отвалился curlftpfs. Есть куда покамест сложить голову, а там можно будет и продолжить. Я что-то начинаю терять энтузиазм относительно изначальной цели поста.

piyavking ★★★★★
() автор топика
Последнее исправление: piyavking (всего исправлений: 3)