Погромистский вопрос по Линуху

Вот на Винде использование COM объектов сильно упрощает жизнь. Не надо рисовать какие-то там свои вещи, можно взять чужую dll-ку и с её помощью сделать что угодно. Например, одним из моих проектов было вытаскивание реального адреса картинки из вебстранички. Проблема только в том была, что адрес картинки создавался на лету джаваскриптом. Можно было закопаться сделать интерпретатор джаваскрипта, но нуегонахер такое счастье. Я тупо взял COM-объект интернет эксплорера, ходил на страницу этим объектом, и оно мне вываливало всё, что мне надо было нужно.

Вот мне захотелось создать такое же на Линуксе.

Кто-нибудь может объяснить, как наиболее стандартными средствами сделать на Линуксе похожее? То-есть, чтобы моя программа вызывала к жизни браузер (да и любую другую программу, например, табличный процессор), давала ему какие-то команды, и т.д.? А то что-то я вот так сходу не нашёл. Насколько понимаю, никакого COM на Линуксах нет. Но должно же быть что-то похожее?

С браузером просто, тащишь html netcat'ом, парсишь его вылавливаешь вывод. Можно использовать Перл, покопаться на CPAN, нвйти модуль который тебя устраивает. Наверняка с PHP точно так же. Навкрное можно использовать mono, но тут я точно не знаю.



Edited at 2016-05-23 08:02 pm (UTC)
> С браузером просто, тащишь html netcat'ом, парсишь его вылавливаешь вывод.

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

> Навкрное можно использовать mono, но тут я точно не знаю.

В mono, увы, нет COM :((((

Я тогда не понял что тебе нужно. И почему тебя пугает парсить структурированый текст? Это же компьютер, железяка, а она должна работать.

> Я тогда не понял что тебе нужно. И почему тебя пугает парсить структурированый текст? Это же компьютер, железяка, а она должна работать.

Ну вот html собирается на ходу из джаваскрипта. Как тут это парсить, чем? Это ж выполнять надо джаваскрипт. html-то я распарсю.
Идешь на CPAN (Comprehensive Perl Archive Network), ищешь модуль, который тебе нужно, ставишь, пишешь свой скрипт. Вуаля!
Мне по слову 'javascript' выдало 999 модулей.
Проглядел по диагонали -- того, что мне надо, нету....

То что тебе надо (если я правильно тебя понял) по первой же ссылке. Выкачиваешь html, прогоняешь через javascript-машину, парсишь вывод. Вуаля или как сейчас говорят: Профит!

По первой ссылке https://metacpan.org/pod/JavaScript

Это же не то совсем.

"You can write your subroutines, classes and so forth in Perl and make them callable from JavaScript." Как мне это поможет?

Или какой модуль ты имел в виду?

Перловый модуль. Их там миллион (фигурально).

Гугланул, node.js - javascript из командой строки. Тоже можно использовать.

Ну каким макаром?

Вот у меня страница. -- всё, как положено.

А в середине

А мне надо получить полный html, что получится после выполнения всего.
на nodejs - phantomjs
если нужен другой язык, то с phantom можно через webdriver общаться
если нужен честный рендеринг на интерпретаторе js из браузера, то вместо фантома нужно брать headless chrome или FF
БЛДЖАД, хтмл теги съело.

Короче, там ХТМЛ, а в центре ХТМЛа мелким бесом джаваскрипт. Мне надо получить -- полный ХТМЛ, который получается в результате выполнения всего джаваскрипта.

Я не нашёл на сипане модулей, и близко предлагающих этот функционал.
Стоит, наверное, разделить статический html и динамический. Динамический будет твой javascript, который стоит пропустить через node.js, а потом соединить их вместе.
Аналог COM для юниксов - это CORBA. Но, как пишут, frirefox использует XPCOM - свою собственную наработку.
https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM
Да я вот там почитал -- там кто в лес, кто по дрова. Есть масса фреймворков. Взять тот же D-Bus.