Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Сети
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
TUberwer
18 / 18 / 10
Регистрация: 04.07.2013
Сообщений: 260
Записей в блоге: 1
1

Http запрос на .js

17.12.2014, 07:30. Просмотров 783. Ответов 10
Метки нет (Все метки)

Здравствуйте. Нужно программой выполнить какие-то действия, которые возможно выполнить через браузер.
Открыл браузер, проснифферил, там нужно делать запрос на http://____.js
Во вкладке response в сниффере я вижу js код, и в нем постоянно разные значения, которые мне нужно парсить программой.

Примерно такое:
Кликните здесь для просмотра всего текста

var _ACPuzzleUtil=_ACPuzzleUtil ||{callbacks:[],puzzle_count:0,puzzles:{},add_callback:function(fn,context){var i=this.callbacks.length;this.callbacks[i]=function(obj){fn.call(context,obj);};return i;},add_puzzle:function(puzzle,id){if(typeof this.get_puzzle(id)=='undefined'){this.puzzle_count++;}
this.puzzles[id]=puzzle;return this.puzzle_count;},get_puzzle:function(id){return this.puzzles[id];},make_puzzle_id:function(){var newid;var x=this.puzzle_count;do{newid='acpuz_'+x;x++;} while(typeof this.get_puzzle(newid)!='undefined');return newid;}
}
var ACPuzzleCurrent;function ACPuzzleObject(opts){var ACPuzzleInfo=opts;this.PuzzleInfo=function(){return ACPuzzleInfo;};this.theme={purple:{bg:'#5d216b',bd:'#2b0833',fg:'#fff',lk:'#004',hv:'#aaa',er:'#ff0',is:'-puV2',ls:'-puV2' },red:{bg:'#c71018',bd:'#690f0f',fg:'#fff',lk:'#004',hv:'#aaa',er:'#ff0',is:'-rdV2',ls:'-rdV2' },black:{bg:'#111',bd:'#444',fg:'#fff',lk:'#ccf',hv:'#555',er:'#f00',is:'-bkV2',ls:'-bkV2' },white:{bg:'#f8f8f8',bd:'#bbb',fg:'#000',lk:'#004',hv:'#aaa',er:'#f00',is:'-whV2',ls:'-whV2' },none:{is:'-bkV2',ls:'-whV2' },custom:{is:'-bkV2',ls:'-whV2' }
};this.locale={"sv":{"VISUAL":"Vaxla till visuell pussel","AUDIO":"Vaxla till ljud pussel","PLAYING":"Spela ljud","NEWPUZ":"Nya pussel","INFO":"Mer information","CONTINUE":"FORTGA","AGAIN":"Forsok igen","RETURN":"Aterga till Sida","PROVE":"Bevisa att du ar manniska for att bekampa spam","DLAUDIO":"Ladda ner mp3-fil","ANSWER":"Ditt svar","REPLAY":"Lyssna igen" },"pt":{"VISUAL":"Mude para o quebra-cabeca visual","AUDIO":"Mude para o quebra-cabeca de audio","PLAYING":"Reproduzir som","NEWPUZ":"Novo quebra-cabeca","INFO":"Mais informacoes","CONTINUE":"CONTINUAR","AGAIN":"Tente novamente","RETURN":"Retornar para Pagina","PROVE":"Prove que voce e um ser humano para ajudar a combater o spam","DLAUDIO":"Baixar arquivo mp3","ANSWER":"A sua resposta","REPLAY":"Ouca novamente" },"yi":{"VISUAL":"????????? ?? ?? ???????????? ???????","AUDIO":"????????? ?? ??? ??????? ???????","PLAYING":"????????? ???????","NEWPUZ":"????? ???????","INFO":"??? ??????????????","CONTINUE":"????????","AGAIN":"??????? ???????","RETURN":"?????????? ?? ????","PROVE":"?????????? ??? ????? ????? ?? ????? ????? ??????","DLAUDIO":"??????????? mp3 ????","ANSWER":"???? ???????","REPLAY":"???? ??????" },"tr":{"VISUAL":"Gorsel bulmaca gecis","AUDIO":"Ses bulmaca gecis","PLAYING":"Ses calma","NEWPUZ":"Yeni bulmaca","INFO":"Daha fazla bilgi","CONTINUE":"DEVAM","AGAIN":"Tekrar deneyin","RETURN":"Sayfaya Don","PROVE":"Eger mucadele Spam yard?mc? olmak icin insan oldugunuzu kan?tlamak","DLAUDIO":"Mp3 dosyas? indir","ANSWER":"Yan?t?n?z","REPLAY":"Tekrar dinle" },"it":{"VISUAL":"Cambia ad un puzzle visivo","AUDIO":"Cambia a
...(не влазит весь код)


Когда я делаю этот запрос компонентом idhttp, то возвращает вот такой текст:
Кликните здесь для просмотра всего текста
#$1F'�'#8#0#0#0#0#0#0#3'�[�r'#$1B'Gr�_O1ƕ'#$E'd'#4'� )�2h�B���'#$B'%�HJ�OQ�'#6'�'#3'`���z?'#0#2'<U������9'#$7F'*��X���,_�å��(��? ���'#0'�e�-�=�'#$B'�'#2'K�r�X'#$12'vg�{����ݳX��29%��˫5�L'#$19'�d.�{�l'#8'���9frJ�mc�СC-��⩵�۵�'#5'�[��'#$1D'��/�'#$D'jYej4����'#$19'GN�'#$C#$11'�~>'#$17'�z��+'#$19'j���4_'#9'l��'#$009E'��'#$19'C�>��q-^�kܛ'#$19'ʜ��]�k'#$B'��K�ra(B����'#$15'[�N��28�pe�e~�ڄ/���:���}���ۼ2�w'#$1C'&*D.Ue~H='#5'��B:�MV�63��ےB��ȑ�+��QPм\Pב'#$E#$13'L��h��N��$��'#8#$1C'M�`!K��#.�=�����W[���L�-'#9#$A'ij�D)}dka'#$B'U''�'#$1A#7'C��_�L�'#$14'sAd�Z�ʡ+2P��8'#$15'�.�'#5'#�'#$13'��:3�)���R8�X�+���'#$A'hmP�0\S�'#1'�%�_c MV�v'#2'�'#1'_n����O��s����Lل��r���|:S��J���X'#$D'��厦3�'#$16'\QJ�'#$19'���\:ý|:�'#4#$17'�pxI�d\f��Wfs�''B��_�Ur�'#$17#$1 4'�C��'#$12'ė-�'#$1D'j����P�ѣG''D'#$1B'F%'#$14'}�رHt.'#$12']n'#$C'E�K'#$10#$D#$18'��k*''�/�^.�C�9��[��vm(]^�t[� ||�h�'#8'<_4��?'#$14'�h'#9'��'#0'c�k��۩��'#$1B#$17#$16'WR���ޝ-�'#$12'�7'#$16'iq/`��'#4'�ǬT&�xaiyu�Ȫ'#7'�bme����g�f�a@��0|���څ����'#$E#$1D#$11'/�?���1�E'#$10'`n�b��ĩ����/'#$14'a������;������8����z�4'#8'�2$^/n^Xlj�;>s���*�6�IQ��Ջ(�$'#3'k(��Ò�ٻc��kPR'#1'�r��'#$1A'�;M�'#$12'ϡM`^Z�,^��Fa'#$B#2'�3��p��'#$1B'o'#$14'�ar�'#3'�'#7' {


Как мне можно получить нормальный код, как под первым спойлером?

Добавлено через 9 минут
Та вот дажде если с браузера открыть http://api.solvemedia.com/papi/_puzzle.js , покажет нужный мне код. Как его можно правильно получить через делфи, чтобы был нужный мне текст а не набор символов непонятный?

Добавлено через 2 часа 58 минут
Пока вижу такой вариант - открывать в twebbrowsere невидимом, брать html, ну и парсить значения. Только все же хотелось бы решение с tidhttp

Добавлено через 8 часов 34 минуты
Тем более что использовать огромную кучу twebbrowserov в потоках - будет много памяти есть. Может есть какие-то компоненты, для этого?
При заходе на сайт, я так понимаю, срабатывает скрипт JS, и выводит вот этот вес код. Может есть специальные компоненты, которые могут выполнять JS скрипты и получать ответ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.12.2014, 07:30
Ответы с готовыми решениями:

Как отправить HTTP запрос
Ну например, имеется приложение, как из него отправить HTTP запрос и получить ответ сервера?

IdHTTP.get запрос с HTTP-заголовокок
Всем привет народ столкнулся с такой вот проблемой нужно передать get запрос и как то нужно...

Создание эмулятора сервера, который отправляет HTTP GET запрос
Здравствуйте, уважаемый программисты! Помогите. Нужно написать на Delphi 2007 эмулятор сервера,...

HTTP запрос через Apache HTTP Client ничего не возвращает
У меня есть один сайт. Простой сайт на php. И есть второй сайт, где используется java на JBoss. Я...

Запрос через http - HTTP Error 400
Добрый день Есть запрос, который хотим отправлять через http ВЫБРАТЬ...

10
mss
2639 / 2263 / 277
Регистрация: 24.12.2010
Сообщений: 13,725
17.12.2014, 13:00 2
Цитата Сообщение от TUberwer Посмотреть сообщение
все же хотелось бы решение с tidhttp
Судя по спойлерам оригинальный JS-код передается сервером в обфусцированном и/или упакованном виде.
За его деобфускацию и/или распаковку перед запуском отвечает получивший его клиент, которому сервер где-то раньше по тексту очевидно передает еще какой-то JS-код, который запускается автоматом при открытии браузером страницы.
TIdHTTP-клиент не умеет интерпретировать JS-скрипты, поэтому без внешнего интерпретатора, например, в составе движка какого-то браузера, тут не обойтись
1
TUberwer
18 / 18 / 10
Регистрация: 04.07.2013
Сообщений: 260
Записей в блоге: 1
17.12.2014, 15:55  [ТС] 3
Хм, а что бы именно вы посоветовали. Что-то, которое меньше всего ест оперативки и возможностью использовать прокси?
0
mss
2639 / 2263 / 277
Регистрация: 24.12.2010
Сообщений: 13,725
17.12.2014, 16:02 4
TWebBrowser и посоветую)
И есть большие сомнения в необходимости создания "огромной кучи" оных - наверняка все гораздо проще и смешнее чем это у тебя сейчас сделано в программе.
1
17.12.2014, 16:02
TUberwer
18 / 18 / 10
Регистрация: 04.07.2013
Сообщений: 260
Записей в блоге: 1
17.12.2014, 16:09  [ТС] 5
а можно ли для каждого отдельного компонента twebbrowser использовать прокси отдельные?
0
mss
2639 / 2263 / 277
Регистрация: 24.12.2010
Сообщений: 13,725
17.12.2014, 16:20 6
Можно.
1
TUberwer
18 / 18 / 10
Регистрация: 04.07.2013
Сообщений: 260
Записей в блоге: 1
17.12.2014, 21:30  [ТС] 7
Можете подсказать как именно? Если так, то возможно я просто возьму где-то штук 10 веббровсеров. Ними отпарсю определенное количество данных, и данные уже по потокам раскидаю.

Добавлено через 3 часа 16 минут
Цитата Сообщение от mss Посмотреть сообщение
И есть большие сомнения в необходимости создания "огромной кучи" оных - наверняка все гораздо проще и смешнее чем это у тебя сейчас сделано в программе.
Мне просто нужно получать капчу с сайта http://bitcoinker.com/ . Проснифферил, а теперь пытаюсь все запросы повторить

Добавлено через 1 час 34 минуты
Я так и не нашел информации о том, как включить определенные прокси для ОДНОГО определенного компонента TWebBrowser

Добавлено через 6 минут
Возможно все же можно использовать какой-то другой компонент? какой?
0
mss
2639 / 2263 / 277
Регистрация: 24.12.2010
Сообщений: 13,725
18.12.2014, 08:25 8
Цитата Сообщение от TUberwer Посмотреть сообщение
не нашел информации о том, как включить определенные прокси для ОДНОГО определенного компонента TWebBrowser
Не знаю как так можно искать, чтобы не увидеть то что прямо перед носом, но вот.

Цитата Сообщение от TUberwer Посмотреть сообщение
Возможно все же можно использовать какой-то другой компонент? какой?
TEmbeddedWB
1
TUberwer
18 / 18 / 10
Регистрация: 04.07.2013
Сообщений: 260
Записей в блоге: 1
18.12.2014, 21:12  [ТС] 9
Не знаю как так можно искать, чтобы не увидеть то что прямо перед носом, но вот.
Не нашел, чтобы можно было кинуть несколько twebbrowserov и к каждому разные прокси подключить.

Цитата Сообщение от mss Посмотреть сообщение
TEmbeddedWB
Есть ли там настройки, чтобы четко выставить для каждого компонета прокси? типа EmbeddedWB.Proxy.Server := ..
Если есть, можете пример кода кинуть?

Добавлено через 3 часа 43 минуты
установил TEmbeddedWB, поставил Auto load proxy True , подставил сервер и хост - но после присвоения прокси, бразуер просто не открывает страницы. Прокси юзал разные. все рабочие. Подскажите как решить? Или подскажите код, который будет ставить разные прокси на отдельные копии компонента twebbrowser в одной программе одновременно. Нашел вот такое: но написанно, что применяется лишь для текущей сессии, а это значит что в одной программе не получится добаывить сразу 5 или более twebbrowserov и на каждый разный прокси повесить?
....
uses...urlmon, wininet...
....
var
PIInfo: PInternetProxyInfo;
begin
New(PIInfo);
PIInfo^.dwAccessType := INTERNET_OPEN_TYPE_PROXY;
// Изменение настроек ПРОКСИ
PIInfo^.lpszProxy := PChar('some.proxy:someport');
// указать прокси напр.
195.43.67.33: 8080
PIInfo^.lpszProxyBypass := PChar('');
// Список адресов, доступ к которым возможен минуя Proxy сервер

UrlMkSetSessionOption(INTERNET_OPTION_PROXY, piinfo,
SizeOf(Internet_Proxy_Info), 0);
....
Dispose(PIInfo);
....
Вызывать функцию UrlMkSetSessionOption можно из любого места программы, причем любое количество раз и с разными настройками.

После вызова функции TWebBrowser будет работать через указанный прокси. Еще раз повторюсь настройки касаются только текущей сессии (программы на момент выполнения ), общие настройки Windows не изменяются.
0
mss
2639 / 2263 / 277
Регистрация: 24.12.2010
Сообщений: 13,725
18.12.2014, 21:16 10
прокси в IE ассоциируется с сессией
1
TUberwer
18 / 18 / 10
Регистрация: 04.07.2013
Сообщений: 260
Записей в блоге: 1
19.12.2014, 19:14  [ТС] 11
Не особо понял вашего последнего сообщения.. то есть не выйдет сделать в программе несколько twebbrowserow и в каждом разные прокси одновременно? Если получится, то можете прямо сказать как, без загадок? Ну и возможно просто получится решить проблему с TEmbeddedWB? я описывал ее выше

Добавлено через 19 часов 44 минуты
up! ответа пока не получил, и в интернете не нашел(

Добавлено через 1 час 7 минут
а вообще я не могу понять. почему через idhttp все же не выходит. я саму программу проснифферил - в самом сниффере смотрю ответ на этот запрос - там нужный мне текст. Можете кто-то пожалуйста гет запросом получить код той страницы?
0
19.12.2014, 19:14
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.12.2014, 19:14

Почему ответ на GET запрос из Python отличается от ответа на GET запрос из HTTP Analyzer
Добрый день. Делаю GET запрос из HTTP Analyzer Указываю только адрес запроса:...

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

HTTP GET запрос
Здравствуйте. Уважаемые форумчане,помогите пожалуйста составить запрос серверу для получения...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru