Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
1 / 1 / 1
Регистрация: 05.04.2013
Сообщений: 225

Формирование запроса в гугл

11.12.2013, 21:34. Показов 2618. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как правильно передать запрос в гугл, что бы получить страницу результатов поиска ? Т.е. программно вводить запрос и передавать его через GET или POST запрос. Как нужно непосредственно сформировать этот запрос, что бы вернулся стринг или чет подобное в виде страницы результата поиска.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.12.2013, 21:34
Ответы с готовыми решениями:

Как получить страничку результатов запроса в гугл
Собственно, вопрос в названии. Удалось сделать это в Яндексе (strYand1), но когда пробовал использовать строку strGoog1 выбрасывается...

Формирование запроса на бэкенд
Здравствуйте. Имеется аппа на фронте, которая дергает апи бэкенда. Хотел узнать , как сформировать запрос, если, к примеру, имеется 10...

Правильное формирование POST-запроса к торговой площадке Steam
Здравствуйте! Пытаюсь программно купить предмет на на торговой площадке Steam. Предварительный анализ показал, что браузер в этой...

9
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
12.12.2013, 11:14
Ну вообще-то достаточно обратиться по определенному URL: https://www.google.ru/?#q=Java. "Java" в данном случае - это запрос. Если нужно спросить что-то на русском, то надо закодировать URL через URLEncoder, кодировка, если я правильно помню, UTF-8.
1
1 / 1 / 1
Регистрация: 05.04.2013
Сообщений: 225
12.12.2013, 12:06  [ТС]
Цитата Сообщение от Skipy Посмотреть сообщение
Ну вообще-то достаточно обратиться по определенному URL: https://www.google.ru/?#q=Java.
Окей, - спасибо а то я чет в дебри полез... Но как быть если запрос выглядит вот так ? https://www.google.com/?gws_rd... 1%82%D0%BE


Как сформировать нечто подобное, принимая аргумент в виде "java а если еще что-то" ?
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
12.12.2013, 13:18
Цитата Сообщение от IGROK@ Посмотреть сообщение
Как сформировать нечто подобное, принимая аргумент в виде "java а если еще что-то" ?
Еще раз:

1. Формируете строку url в том виде, который я указал, вместо "java" пишете Ваше "java а если еще что-то"
2. С помощью URLEncoder кодируете эту строку с кодировкой UTF-8
3. Формируете URL с полученной строкой
1
1 / 1 / 1
Регистрация: 05.04.2013
Сообщений: 225
12.12.2013, 15:52  [ТС]
разобрался как формировать запрос, но ответ получил в виде "кучи" иероглиф. как их привести в исходную страницу ? Я в общем то хотел парсить эту страницу, а получил не понятно что... Для теста делал следующим образом:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 String url_get_page = "https://www.google.com/?gws_rd=cr&ei=Dm2pUpGxDoLnygPe7ICACg#q=java+%D0%B0+%D0%B5%D1%81%D0%BB%D0%B8+%D0%B5%D1%89%D0%B5+%D1%87%D1%82%D0%BE-%D1%82%D0%BE";
           
        URL url;
        try {
               url = new URL(url_get_page);         
               HttpURLConnection connection = null;
               connection = (HttpURLConnection) url.openConnection();                      
              
               connection.setRequestProperty("host", "www.google.com");
               connection.setRequestMethod("GET");
               connection.setDoOutput(true);
               connection.setReadTimeout(10000);           
               connection.setRequestProperty("path", "/search?sclient=psy-ab&q=java+%D0%B0+%D0%B5%D1%81%D0%BB%D0%B8+%D0%B5%D1%89%D0%B5+%D1%87%D1%82%D0%BE-%D1%82%D0%BE&oq=java+%D0%B0+%D0%B5%D1%81%D0%BB%D0%B8+%D0%B5%D1%89%D0%B5+%D1%87%D1%82%D0%BE-%D1%82%D0%BE&gs_l=serp.12...0.0.0.8034.0.0.0.0.0.0.0.0..0.0....0...1c..32.psy-ab..0.0.0.xJrFeiWdw9k&pbx=1&bav=on.2,or.r_cp.r_qf.&fp=ee2a56c569c4ba0f&biw=1920&bih=440&bvm=pv.xjs.s.en_US.rPdE4CKmgI4.O&tch=1&ech=1&psi=z5CpUtWOBI2IyQOeqYG4Dw.1386844370715.5");
               connection.setRequestProperty("scheme", "https");
               connection.setRequestProperty("version", "HTTP/1.1");
               connection.setRequestProperty("accept", "*/*");
               connection.setRequestProperty("accept-encoding", "gzip,deflate,sdch");
               connection.setRequestProperty("accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4");
               connection.setRequestProperty("cookie", "SS=DQAAAMYAAADWc_LsJvZdJkG5wPeRQj7vUfXiSTs_xY1MmSAsmPz3OYeW7ZX131vmaUWpi2QmPSDMu928WO4VD-dn9Qz9JvIar475AUU5-beGFSODfeT6AzD6zN6UMg5Xrvd17fFygYJksgGKCE0yi4t1Ls94dPdl9vTCzspioFG9_aUAMCqVGW_iVsgvESLF9kLR_YyJcuCSlV3xIZY4TNT_nz6KPAW68HAXvbpXRjb0QQZMiYJz38x35y1gy7NaGVUfg8ygniT0UOfSQgDQqY7l2diyB7XK; PREF=ID=cbed0c85b04cfb13:U=a95f008f1f5dd197:LD=ru:TM=1301434702:LM=1372502508:DV=QoFzS7q0XRopjJ2zLor6CigGMRAff8o7TM646wymBAAAAAA:GM=1:S=D7hontM5nPdwL-9I; adsenseReferralSourceId=YXNv; adsenseReferralSubId=d3ctd3ctZXQtbmVsc29uX2Fkc2Vuc2U; adsenseReferralUrl=d3d3Lmdvb2dsZS5jb20vYWRzZW5zZS9zdGFydC8; S_adsense3-ui=W6s0hJX8d9hTsF1vBVWfeQ; S=adsense3-ui=M0mNINYoXoIlEWTbFrsN9w:payments=NzZgEfAliGfBlauFRghdbw:static_files=LNd08u89ydM; NID=67=QW7ryxl21VCNJ0iaPcADHUNvqQYZs88EmstqYk4WG4fG3P9D4nkPCVclun7XbLcICfsjsO9BkNymRgLghbZf4FtxGiGbFblAUE5TsCSu-Tc14NFaL4pEgdTbRpKqe6ERXUdhnlu3_zhPNgSt2S2-7CTrYs7FHXvni_iHO0HUcbORfi9I3uEsBcNkdEFPNs2SnDRNP15u2FEl5KE54BenFMaNUw5CEJyqwJn6A281ja-YT5zANOl2nF6X; HSID=AH5g8IWNAE0b08vsM; SSID=AAD-IXFijj44t2ifh; APISID=kOhYTsVR1wVo0ssj/AWAM-ufwM4JRGz9eZ; SAPISID=9JE3gDk9dyNMca1_/ACzINRU3YniwhBMJX; SID=DQAAAM0AAAABQt8uWUtORcspcjGlQdfRJ36Q3qAr-anqtCXjalLWzfv2hNlvKoYTQ6dg0JS3TJ7kzWqXEEEEQ3OWMp9q_8h3IC4heV_KtMH42absHEwcNNFBw70cwYqdEPeItHWuoMCpdr0Wp8TDAr4uCvfGvBzOam-1zq9GsP9_4N3OxoayPhEs1KziJGxk9gvAb_PG6C-CdhNuYUJLtVJx-u62Lp8sMg4yFIXgC2OcAEQ_tsscLRab3gOUKhth_Z3GtBYr5YCqO2l6IrlDWJYuzzro5jQw");
               connection.setRequestProperty("referer", "https://www.google.com/");
               connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36");
               connection.setRequestProperty("x-chrome-variations", "CKy1yQEIiLbJAQiktskBCKm2yQEIxLbJAQiehsoBCIaIygEIlorKAQ==");
               
               connection.connect();
               
               BufferedReader rd = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF8"));
               String line;
               ArrayList<Character> array= new ArrayList<Character>();
               
               while ((line = rd.readLine()) != null) {
                   int i=0;
                   while (i!=line.length()){
                      array.add((char) line.indexOf(i));
                   i++;
 
    
               }
        
               connection.disconnect();
               
               outFile("C:/Users/igrok/Desktop/test.html", array); // запись в файл
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
 
                e.printStackTrace();
            }
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
12.12.2013, 16:14
Боже... Вы зачем ТАК пишете в файл??? Считали строку - записали. Делаете BufferedWriter над OutputStreamWriter-ом и пишете по строкам! Только переводы строки не забудьте.

Добавлено через 6 минут
Да, еще момент - Вы же пишете категорически неправильно. indexOf - это позиция символа. Вот Вы и ищете последовательно символы с кодами 0х0, 0х1 ... - и до длины строки. У бОльшей части символов позиция будет -1 - не найден. И вот эту -1 Вы и пишете в файл.
1
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
 Аватар для tankomaz
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
12.12.2013, 16:24
а вообще следует начать с https
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
String url_get_page = "http://www.google.com/?gws_rd=cr&ei=Dm2pUpGxDoLnygPe7ICACg#q=java+%D0%B0+%D0%B5%D1%81%D0%BB%D0%B8+%D0%B5%D1%89%D0%B5+%D1%87%D1%82%D0%BE-%D1%82%D0%BE";
 
        URL url;
        try {
            url = new URL(url_get_page);
            HttpURLConnection connection = null;
            connection = (HttpURLConnection) url.openConnection();
 
            connection.setRequestProperty("host", "www.google.com");
            connection.setRequestMethod("GET");
            connection.setDoOutput(true);
            connection.setReadTimeout(10000);
            connection.setRequestProperty("path", "/search?sclient=psy-ab&q=java+%D0%B0+%D0%B5%D1%81%D0%BB%D0%B8+%D0%B5%D1%89%D0%B5+%D1%87%D1%82%D0%BE-%D1%82%D0%BE&oq=java+%D0%B0+%D0%B5%D1%81%D0%BB%D0%B8+%D0%B5%D1%89%D0%B5+%D1%87%D1%82%D0%BE-%D1%82%D0%BE&gs_l=serp.12...0.0.0.8034.0.0.0.0.0.0.0.0..0.0....0...1c..32.psy-ab..0.0.0.xJrFeiWdw9k&pbx=1&bav=on.2,or.r_cp.r_qf.&fp=ee2a56c569c4ba0f&biw=1920&bih=440&bvm=pv.xjs.s.en_US.rPdE4CKmgI4.O&tch=1&ech=1&psi=z5CpUtWOBI2IyQOeqYG4Dw.1386844370715.5");
            connection.setRequestProperty("scheme", "https");
            connection.setRequestProperty("version", "HTTP/1.1");
            connection.setRequestProperty("accept", "*/*");
            connection.setRequestProperty("accept-encoding", "gzip,deflate,sdch");
            connection.setRequestProperty("accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4");
            connection.setRequestProperty("cookie", "SS=DQAAAMYAAADWc_LsJvZdJkG5wPeRQj7vUfXiSTs_xY1MmSAsmPz3OYeW7ZX131vmaUWpi2QmPSDMu928WO4VD-dn9Qz9JvIar475AUU5-beGFSODfeT6AzD6zN6UMg5Xrvd17fFygYJksgGKCE0yi4t1Ls94dPdl9vTCzspioFG9_aUAMCqVGW_iVsgvESLF9kLR_YyJcuCSlV3xIZY4TNT_nz6KPAW68HAXvbpXRjb0QQZMiYJz38x35y1gy7NaGVUfg8ygniT0UOfSQgDQqY7l2diyB7XK; PREF=ID=cbed0c85b04cfb13:U=a95f008f1f5dd197:LD=ru:TM=1301434702:LM=1372502508:DV=QoFzS7q0XRopjJ2zLor6CigGMRAff8o7TM646wymBAAAAAA:GM=1:S=D7hontM5nPdwL-9I; adsenseReferralSourceId=YXNv; adsenseReferralSubId=d3ctd3ctZXQtbmVsc29uX2Fkc2Vuc2U; adsenseReferralUrl=d3d3Lmdvb2dsZS5jb20vYWRzZW5zZS9zdGFydC8; S_adsense3-ui=W6s0hJX8d9hTsF1vBVWfeQ; S=adsense3-ui=M0mNINYoXoIlEWTbFrsN9w:payments=NzZgEfAliGfBlauFRghdbw:static_files=LNd08u89ydM; NID=67=QW7ryxl21VCNJ0iaPcADHUNvqQYZs88EmstqYk4WG4fG3P9D4nkPCVclun7XbLcICfsjsO9BkNymRgLghbZf4FtxGiGbFblAUE5TsCSu-Tc14NFaL4pEgdTbRpKqe6ERXUdhnlu3_zhPNgSt2S2-7CTrYs7FHXvni_iHO0HUcbORfi9I3uEsBcNkdEFPNs2SnDRNP15u2FEl5KE54BenFMaNUw5CEJyqwJn6A281ja-YT5zANOl2nF6X; HSID=AH5g8IWNAE0b08vsM; SSID=AAD-IXFijj44t2ifh; APISID=kOhYTsVR1wVo0ssj/AWAM-ufwM4JRGz9eZ; SAPISID=9JE3gDk9dyNMca1_/ACzINRU3YniwhBMJX; SID=DQAAAM0AAAABQt8uWUtORcspcjGlQdfRJ36Q3qAr-anqtCXjalLWzfv2hNlvKoYTQ6dg0JS3TJ7kzWqXEEEEQ3OWMp9q_8h3IC4heV_KtMH42absHEwcNNFBw70cwYqdEPeItHWuoMCpdr0Wp8TDAr4uCvfGvBzOam-1zq9GsP9_4N3OxoayPhEs1KziJGxk9gvAb_PG6C-CdhNuYUJLtVJx-u62Lp8sMg4yFIXgC2OcAEQ_tsscLRab3gOUKhth_Z3GtBYr5YCqO2l6IrlDWJYuzzro5jQw");
            connection.setRequestProperty("referer", "https://www.google.com/");
            connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36");
            connection.setRequestProperty("x-chrome-variations", "CKy1yQEIiLbJAQiktskBCKm2yQEIxLbJAQiehsoBCIaIygEIlorKAQ==");
 
            connection.connect();
 
            BufferedReader rd = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF8"));
            String line;
            ArrayList<Character> array = new ArrayList<Character>();
            StringBuilder stringBuilder = new StringBuilder();
 
            while ((line = rd.readLine()) != null) {
                stringBuilder.append(line + "\n");
            }
 
            connection.disconnect();
 
            FileWriter fileWriter = new FileWriter(new File("C:\\test.html")); // запись в файл
            fileWriter.append(stringBuilder.toString());
            fileWriter.close();
 
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
 
            e.printStackTrace();
        }
Добавлено через 4 минуты
кстати по теме, пока не забыл, не стану утверждать - но просто "в лоб" гугла страницу поиска и не выкачать, лучше потренируйтесь пока на других сайтиках, не знаток ВЕБа - но там "умнО" нужно подходить к вопросу
1
1 / 1 / 1
Регистрация: 05.04.2013
Сообщений: 225
12.12.2013, 17:10  [ТС]
Оговорюсь сразу: я не программист, а только учусь (на сегодняшний день, я разнорабочий...)
Цитата Сообщение от Skipy Посмотреть сообщение
Вы зачем ТАК пишете в файл???
ну это первое что пришло в голову для того, что бы удобно было проверять что я там вычитал...
Цитата Сообщение от Skipy Посмотреть сообщение
indexOf - это позиция символа.
-действительно протупил...
Цитата Сообщение от tankomaz Посмотреть сообщение
гугла страницу поиска и не выкачать,
- А почему ? Может есть, кто - то на форуме, кто может подсказать ? Ведь страницу поиска, можно сохранить как обыкновенную вэбстраницу, то почему её нельзя вычитать программно ?
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
12.12.2013, 17:12
Если я помню правильно, гугл хочет обращения от реального браузера, User-Agent надо в запросе указывать, соответствующий браузеру.
0
1 / 1 / 1
Регистрация: 05.04.2013
Сообщений: 225
12.12.2013, 17:17  [ТС]
Java
1
2
connection.setRequestProperty("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36");
            connection.setRequestProperty("x-chrome-variations", "CKy1yQEIiLbJAQiktskBCKm2yQEIxLbJAQiehsoBCIaIygEIlorKAQ==");
эти 2-е строчки, я взял путем инспектирования страницы в гугл хром путем ctrC + ctrV
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.12.2013, 17:17
Помогаю со студенческими работами здесь

Формирование запроса к MYSQL без конкатенации
Добрый день. у меня возник вопрос - как сформировать в программе запрос не используя конкатенацию??

[hibernate] формирование запроса на сервер для добавления сущности по схеме many-to-one?
У меня уже есть CRUD приложение (без view) я протестировал каждую операцию все работает в базе изменения отображаются. Тестил с помощью...

Формирование запроса в 2 таблицы базы данных. Каков синтаксис запроса?
Коллеги, добрый день! Есть Form1. На ней размещен Combobox1 и Texbox1 Есть база данных, содержит 2 таблицы: User_tb User_Kod ...

Расшифровка гугл запроса
Как расшифровать запрос: https://www.google.kz/?gfe_rd=cr&amp;ei=0tCsV_a-OOz37gSCl7fYBA Как определить что вводили в запросе? Заранее...

Формирование запроса БД
Маленький вопросик, но не дает уснуть почему Cursor cursor = database.query(TABLE, null, TAG_DATE + &quot;= ?&quot;, ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru