php ??
Пишу на C++.
Необходимо запустить веб-браузер на опред странице и отправить в активное окно ввода на открытой странице некоторые данные (строку).
Как запустить браузер - это козе понятно.
А вот как отправить в окно ввода данные - может вы поскажете?
А можно как-то использовать код php? там все понятно по крайней мере - метод POST:).. Но неужели в С++ нет аналогичного чего-нибудь?
Конкретно нужно сделать запрос в гугл.
Ну а если не гугл использовать, а рамблер например?
Не везде же такой синтаксис
http://nova.rambler.ru/search?query=abc
Я же говорил - смотрим на адресную строку браузера после отправки запроса нормальным путём.
Но если бы знала как это сделать, наверное не спрашивала бы.
Как послать? что за функции/структуры использовать?
А то я искала, в основном дают примеры как получить данные и прочие громоздкие, не очень понятно. хотелось бы разобраться, а не код копипастить
Но если бы знала как это сделать, наверное не спрашивала бы.
Как послать? что за функции/структуры использовать?
А то я искала, в основном дают примеры как получить данные и прочие громоздкие, не очень понятно. хотелось бы разобраться, а не код копипастить
С TCP/IP знакомы хотя бы поверхностно ? Если нет, то ознакомьтесь. Запрос в гугл - это обыкновенный http-запрос. Поскольку для работы с сетью повсеместно используется интерфейс сокетов, обобщённый алгоритм таков:
1. Открыть сокет.
2. Сформировать заголовки http.
3. Послать их серверу через сокет.
4. Разобрать заголовки ответа, принять данные.
5. Закрыть сокет.
Спецификация http см. тут - http://www.faqs.org/rfcs/rfc2616.html
И не надо ничего выдумывать с браузером - это смешно.
Да вы что, блин, какое TCP/IP, человеку нужно просто запустить браузер на определённой странице. Как определить эту страницу для любого поисковика - я уже наглядно показывал выше.
Запустить браузер тоже дело не хитрое. Можно двумя путями:
- запускать Internet Explorer: самый простой вариант:Код:ShellExecute(0, '', 'C:\Program Files\Internet Explorer\IEXPLORE.exe', 'http://z-z-z', '', SW_NORMAL);
// или:
WinExec("C:\Program Files\Internet Explorer\IEXPLORE.exe http://z-z-z", SW_NORMAL); - делать временный .url-файл и открывать именно его, тогда ОС сама запустить ассоциированное приложение (будь то какой-то другой браузер или прога). Например, c:\open.url:Код:[InternetShortcut]
URL=http://z-z-z
Запуск:Код:ShellExecute(0, '', 'C:\open.url', '', '', SW_NORMAL);
Я надеюсь хоть это всё разложит по полочкам.
Запустить браузер тоже дело не хитрое. Можно двумя путями:[LIST]
// или:
WinExec("C:\Program Files\Internet Explorer\IEXPLORE.exe http://z-z-z", SW_NORMAL);
Нет, напрасно.
Можно же запустить браузер:
1) по умолчанию - не обязательно же IE, я его у себя вообще удалила когда-то.
2) сразу на данной странице, незачем создавать еще какие-то доп url файлы
И это все в одной функции, это известно как сделать.
Вопрос не в том как запустить браузер, а в том, как обеспечить запрос - я все-таки не уверена, что поисковики работают все по схеме гугла:
<...>
Сделаю ещё одну попытку объяснить.
Какая схема гугла? При чём тут гугл вообще? У вас же в адресной строке для Яндекса напимано: ...yandsearch?text=... - вам ничего не говорит это?
Если смущает то, что русские (и другие) символы превращаются в %xx - можно не заморачиваться, нормальные браузеры их перекодируют сами.
Либо погуглите на тему кодирования символов в URL.
Судя по представленному примеру rambler-а, к чему :)
А по-моему все же совсем не обязательнл.
Имеется ввиду .de версия
Автор, попробуйте посмотреть тут - http://curlpp.org/ .
А вообще я вам уже выше писал - curl. Ищите готовые примеры, и вместе их разберём тут, если что-то не понятно будет.
Я так полагаю, что запрос можно организовать, как уже сказали, через сокет и так далее.
Но как к этому приплести вывод результатов в браузере?????
FloyDos. Не нервничайте. Вы просто не понимаете как оно все роботает.
Значит еще раз подробнее о том про что Proger_XP говорит
Любое отображение страницы в браузере уже само по себе запрос.
Если ви открываете страницу по адресу
google.com или rambler.ru - ето уже запрос - просто без параметров.
Если вы напишыте в строке поиска гугла фразу "тралала" и нажиете поиск то ето будет точно то же самое что если вы сразу откроете страницу по урлу google.com?t=тралала.
прочитайде детальнее про отправку форм GET запросом и вам все станет намного яснее.
В даном случае ваша фраза которую вы втоптали в строку поиска передается гуглу как параметр под названием t.
Конечно в других поисковиках етот параметр будет называться по другому. Но такова уж судьба. Вам нужно помнить названия етих параметров для разных поисковиков чтоб уметь сформировать правильный запрос.
И так.
1. Вы знаете на какой поисковик пойдет запрос.
2. В зависимости от поисковика вы формируете урлу.
(Для гугла - google.com?t=фраза, для яндекса yandex.ua/yandsearch?text=фраза и т.д.)
Если вы щитаете что ето не универсально - да не универсально. Но универсально не получится.
3. Вы открываете сформированую урлу в браузере. При етом браузер сам отправит запрос (повторю что любое открытие страницы ето запрос) и сам отобразит результат :). Никаких сокетов и т.п.
Если же вы и далее хотите програмно вводить текст в поле поиска и програмно тыцкать на кнопку..... ви подумайте о том что
а) для разних браузеров ето надо делать по разному.
б) для разних сайтов ето надо делать по разному.
И ето будет в десятки раз сложнее.
что в конечном итоге должно получится?
зачем открывать браузер?
Значит еще раз подробнее о том про что Proger_XP говорит
Хорошо объясняешь простым языком, у меня что-то так не получилось :)
FloyDos. Не нервничайте. Вы просто не понимаете как оно все роботает.
Значит еще раз подробнее о том про что Proger_XP говорит
Любое отображение страницы в браузере уже само по себе запрос.
Если ви открываете страницу по адресу
google.com или rambler.ru - ето уже запрос - просто без параметров.
Если вы напишыте в строке поиска гугла фразу "тралала" и нажиете поиск то ето будет точно то же самое что если вы сразу откроете страницу по урлу google.com?t=тралала.
прочитайде детальнее про отправку форм GET запросом и вам все станет намного яснее.
В даном случае ваша фраза которую вы втоптали в строку поиска передается гуглу как параметр под названием t.
Конечно в других поисковиках етот параметр будет называться по другому. Но такова уж судьба. Вам нужно помнить названия етих параметров для разных поисковиков чтоб уметь сформировать правильный запрос.
И так.
1. Вы знаете на какой поисковик пойдет запрос.
2. В зависимости от поисковика вы формируете урлу.
(Для гугла - google.com?t=фраза, для яндекса yandex.ua/yandsearch?text=фраза и т.д.)
Спасибо, Кэп! Это все понятно, об этом тут уже где-то со второго поста воду льют. Но я не знаю какие поисковики пользователь будет задействовать. Если бы все было так просто, я бы давным-давно воспользовалась советом ProgerXP....
Если вы щитаете что ето не универсально - да не универсально. Но универсально не получится.
3. Вы открываете сформированую урлу в браузере. При етом браузер сам отправит запрос (повторю что любое открытие страницы ето запрос) и сам отобразит результат :). Никаких сокетов и т.п.
Если же вы и далее хотите програмно вводить текст в поле поиска и програмно тыцкать на кнопку..... ви подумайте о том что
а) для разних браузеров ето надо делать по разному.
б) для разних сайтов ето надо делать по разному.
И ето будет в десятки раз сложнее.
а может можно создать скрипт, который отправляет данные странице и запускает ее?
ну я уже поняла, что с сокетами не вариант, нужно оперировать самой страницей.
так может создавать что-то вроде URL файла и запускать его?
я так понимаю, через *.url нельзя послать данные, так может просто PHP файлик сделать и в нем скрипт намутить подходящий?
:confused:
ВОПРОС:
1) Как использовать POST в данном случае (=как отправить запрос в активное поле ввода)
2)Как пройти сразу по адресу, без отображения дополнительных ссылок
ProgerXP, напрасно.
Вы отлично объяснили, на мой взгляд. По крайней мере мне абсолютно все было понятно. :)
Вы отлично объяснили, на мой взгляд. По крайней мере мне абсолютно все было понятно. :)
Я и вижу...
Какие сокеты, о чём вообще речь - если вы не знаете, с какими поисковиками пользователь будет работать - наймите телепата, чтоб за сдельную плату опросил юзеров.
Куда вы будете посылать данные? В небеса? Самый простой и надёжный способ - GET-запрос, как уже ни раз говорилось выше, во всех возможных формах.
Сокеты, POST - это всё одного поля ягоды, вам нужно знать, что куда вставлять. Магического "дай мне результат!" не бывает.
Я уж не знаю, как ещё это можно растолковать...
:D +1
Действительно, либо автор плохо объясняет что ему нужно, либо не понимает невозможности реализации этого, либо мы все тут тупим))))
Если ты программист, то ты и заключи пользователя в определённые рамки какими поисковиками ему можно пользоваться в рамках твоего приложения ...
Если ты программист, то ты и заключи пользователя в определённые рамки какими поисковиками ему можно пользоваться в рамках твоего приложения ...
Ну зачем-же так категорично... Может быть приложение представляет собой искалку, и ищет сразу по 10 поисковикам.
Ну на то ты и программист что бы говорить где искать!
если я всё понял, то
http://kosten-spb.blogspot.com/2008/05/html.html
первая ссылка в гугле по "получение HTML страницы в C#"
и предложить искать в другом месте
Возможен вариант : для каждого поисковика имеем строку вида :
http://google.com/search?q=вопрос
Где вопрос меняем на заданный юзером текст (перекодированный)
Тогды мы можем держать базовый список (гугл, яндекс,рамблер), а при необходимости пользователь сможет заполнить его своими.
На полученную строку травим браузер, передаав её как параметр командной строки