веб-клиент на c/c++ (эмулирующий браузер хотя бы частично)
От: vladie  
Дата: 10.01.06 17:46
Оценка:
хай всем!

сидел вот искал какую-нить готовую либу для c++, которая бы эмулировала браузер. тоесть я даю
ей запросы вида browser->get("url") или browser->post("url",....) и она делает нужные запросы, загружая страницы и парся их. естественно нужен полный доступ к DOM.

ранее решил это через автоматизацию IE (через COM) — но столкнулся с множеством нерешаемых проблем (наример куки общие на все сессии — тоесть нельзя пустить робота с несколькими независимыми потоками, input type=file нельзя изменять по соображениям секьюрити (это решил гемморойным методом) ).

поэтому прежде чем я начну изобретать колесо — скажите пожалуйста — есть ли чтото приблизительно такое готовое (код желательно кроссплатформеный). смотрел в сторону мозилы — она не может работать без графической оболочки а я планирую гонять свой софт на юникс веб сервере.

заранее большое спасибо за ответы/советы

14.12.06 13:56: Перенесено из 'C/C++'
Re: веб-клиент на c/c++ (эмулирующий браузер хотя бы частичн
От: c-smile Канада http://terrainformatica.com
Дата: 10.01.06 21:57
Оценка:
Здравствуйте, vladie, Вы писали:

V>хай всем!


curl и libcurl

http://curl.haxx.se/

Также
http://lynx.browser.org/


V>заранее большое спасибо за ответы/советы


"Ниччо не нада"
Re[2]: веб-клиент на c/c++ (эмулирующий браузер хотя бы част
От: vladie  
Дата: 10.01.06 22:20
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Здравствуйте, vladie, Вы писали:


V>>хай всем!


CS>curl и libcurl


CS>http://curl.haxx.se/


на curl я смотрел. просто хотелось бы чтото интергрированное с javascript движком. есть, например, страницы, где форма через javascript-овский document.write выводится на экран только после нажатия кнопки. вот я хочу делать чтото типа document['someButton']->click а после этого заполнять и сабмитить эту форму. с нуля написать такое достаточно сложно и очень много времени займёт.
Re[3]: веб-клиент на c/c++ (эмулирующий браузер хотя бы част
От: c-smile Канада http://terrainformatica.com
Дата: 10.01.06 22:43
Оценка:
Здравствуйте, vladie, Вы писали:

V>Здравствуйте, c-smile, Вы писали:


CS>>Здравствуйте, vladie, Вы писали:


V>>>хай всем!


CS>>curl и libcurl


CS>>http://curl.haxx.se/


V>на curl я смотрел. просто хотелось бы чтото интергрированное с javascript движком. есть, например, страницы, где форма через javascript-овский document.write выводится на экран только после нажатия кнопки. вот я хочу делать чтото типа document['someButton']->click а после этого заполнять и сабмитить эту форму. с нуля написать такое достаточно сложно и очень много времени займёт.


"с нуля написать такое достаточно сложно и очень много времени займёт."

А придется. Ибо скрипт знает про объект window . А window собственно и есть browser.
Т.е. без browser это не работает. Вмуровано это все в GUI — не вырвать.
Re[4]: веб-клиент на c/c++ (эмулирующий браузер хотя бы част
От: vladie  
Дата: 11.01.06 08:02
Оценка:
V>>на curl я смотрел. просто хотелось бы чтото интергрированное с javascript движком. есть, например, страницы, где форма через javascript-овский document.write выводится на экран только после нажатия кнопки. вот я хочу делать чтото типа document['someButton']->click а после этого заполнять и сабмитить эту форму. с нуля написать такое достаточно сложно и очень много времени займёт.

CS>"с нуля написать такое достаточно сложно и очень много времени займёт."


CS>А придется. Ибо скрипт знает про объект window . А window собственно и есть browser.

CS>Т.е. без browser это не работает. Вмуровано это все в GUI — не вырвать.

ну это ясно. думал написать тулкит для мозиллы который бы якобы "выводил на экран", только на самом деле писал куда-то в память. но никаких док по этому поводу нет, а код слабо документирован ( слабо — мягко сказано ). чёрт. последний вариант — взять curl, xercesc, и javascript-движок от мозиллы и попробовать это скрестить.
Re[5]: веб-клиент на c/c++ (эмулирующий браузер хотя бы част
От: c-smile Канада http://terrainformatica.com
Дата: 11.01.06 08:10
Оценка: 3 (1)
Здравствуйте, vladie, Вы писали:

CS>>"с нуля написать такое достаточно сложно и очень много времени займёт."


CS>>А придется. Ибо скрипт знает про объект window . А window собственно и есть browser.

CS>>Т.е. без browser это не работает. Вмуровано это все в GUI — не вырвать.

V>ну это ясно. думал написать тулкит для мозиллы который бы якобы "выводил на экран", только на самом деле писал куда-то в память. но никаких док по этому поводу нет, а код слабо документирован ( слабо — мягко сказано ). чёрт. последний вариант — взять curl, xercesc, и javascript-движок от мозиллы и попробовать это скрестить.


И Xerces тебе не поможет. Ибо HTML это SGML а не XML .

Посмотрин на lynx. Это имхо ближе всего.
Еили возми уже тот Konqueror что-ли.

Но честно тебе скажу — что-то мне говорит что ты чего-то концептуально не то делаешь...
Re[6]: веб-клиент на c/c++ (эмулирующий браузер хотя бы част
От: vladie  
Дата: 11.01.06 08:18
Оценка:
V>>ну это ясно. думал написать тулкит для мозиллы который бы якобы "выводил на экран", только на самом деле писал куда-то в память. но никаких док по этому поводу нет, а код слабо документирован ( слабо — мягко сказано ). чёрт. последний вариант — взять curl, xercesc, и javascript-движок от мозиллы и попробовать это скрестить.

CS>И Xerces тебе не поможет. Ибо HTML это SGML а не XML .

CS>Посмотрин на lynx. Это имхо ближе всего.
CS>Еили возми уже тот Konqueror что-ли.

а ты не вкурсе — khtml тоже жестко привязан к выводу на экран или его можно использовать в консольном приложении?

CS>Но честно тебе скажу — что-то мне говорит что ты чего-то концептуально не то делаешь...


мне всего лишь надо сделать робота лазяющего по javascript-нагруженному сайту. ранее сделал такого просто вручную проинтерпретировав нужные скрипты — но это не выход — малейшее изменение скриптов — и надо переписывать робота.
Re[5]: веб-клиент на c/c++ (эмулирующий браузер хотя бы част
От: S1 Беларусь  
Дата: 12.12.06 13:47
Оценка:
Здравствуйте, vladie, Вы писали:


V>>>на curl я смотрел. просто хотелось бы чтото интергрированное с javascript движком. есть, например, страницы, где форма через javascript-овский document.write выводится на экран только после нажатия кнопки. вот я хочу делать чтото типа document['someButton']->click а после этого заполнять и сабмитить эту форму. с нуля написать такое достаточно сложно и очень много времени займёт.


CS>>"с нуля написать такое достаточно сложно и очень много времени займёт."


CS>>А придется. Ибо скрипт знает про объект window . А window собственно и есть browser.

CS>>Т.е. без browser это не работает. Вмуровано это все в GUI — не вырвать.

V>ну это ясно. думал написать тулкит для мозиллы который бы якобы "выводил на экран", только на самом деле писал куда-то в память. но никаких док по этому поводу нет, а код слабо документирован ( слабо — мягко сказано ). чёрт. последний вариант — взять curl, xercesc, и javascript-движок от мозиллы и попробовать это скрестить.


vladie, у меня сейчас очень похожая задача! Чем кончились твои изыскания?
Re[6]: веб-клиент на c/c++ (эмулирующий браузер хотя бы част
От: vladie  
Дата: 13.12.06 09:28
Оценка:
Здравствуйте, S1, Вы писали:

S1>Здравствуйте, vladie, Вы писали:



V>>>>на curl я смотрел. просто хотелось бы чтото интергрированное с javascript движком. есть, например, страницы, где форма через javascript-овский document.write выводится на экран только после нажатия кнопки. вот я хочу делать чтото типа document['someButton']->click а после этого заполнять и сабмитить эту форму. с нуля написать такое достаточно сложно и очень много времени займёт.


CS>>>"с нуля написать такое достаточно сложно и очень много времени займёт."


CS>>>А придется. Ибо скрипт знает про объект window . А window собственно и есть browser.

CS>>>Т.е. без browser это не работает. Вмуровано это все в GUI — не вырвать.

V>>ну это ясно. думал написать тулкит для мозиллы который бы якобы "выводил на экран", только на самом деле писал куда-то в память. но никаких док по этому поводу нет, а код слабо документирован ( слабо — мягко сказано ). чёрт. последний вариант — взять curl, xercesc, и javascript-движок от мозиллы и попробовать это скрестить.


S1>vladie, у меня сейчас очень похожая задача! Чем кончились твои изыскания?


взял javascript движок от мозиллы и начал писать с нуля.
конечно если не нужно быстродействия/экономии памяти лучше заюзать готовый броузер.
Re[4]: веб-клиент на c/c++ (эмулирующий браузер хотя бы част
От: Аноним  
Дата: 13.12.06 10:15
Оценка:
CS>"с нуля написать такое достаточно сложно и очень много времени займёт."

CS>А придется. Ибо скрипт знает про объект window . А window собственно и есть browser.

CS>Т.е. без browser это не работает. Вмуровано это все в GUI — не вырвать.

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

Найдите такой браузер, который позволяет себя запускать несколько раз и при этом эти разные процессы друг с другом не взаимодействуют.

Нет такого?
Поставьте несколько VM и запускайте IE/Mozilla там.
Зайдите несколько раз на себя через ssh+X forwarding/Terminal Services и запускайте IE/Mozilla в разных сессиях.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.