Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2017.08.06;
Скачать: CL | DM;

Вниз

Или в TwebBrowser из Tservice сделать Form.Submit .. или ?   Найти похожие ветки 

 
ВладОшин ©   (2016-05-30 11:00) [0]

Ситуация - есть сайт, на нем надо логиниться и парсить.
Что и было сделано на TIdHTTP
Сайт переделан, теперь там куча аяксов, которые какие-то куки ставят и  какие-то, видимо, пролонгации сессий делают. Т.е. теперь пост-запросы обычно приводят на страницу авторизации - не помнит оно уже меня..
Отловить по тексту все эти запросы, и проделать -  ну, наверное, нереально.

Если я беру TwebBrowser и перебором
 document := WB1.Document as IHTMLDocument2;
 if Assigned(document) then
 begin
   docAll := document.all;
   for i := 0 to docAll.length -1 do
   begin
     Element := docAll.Item(i,"") as IHTMLElement;
     if Element.id = "login_or_email" then
     begin
       Login := Element;

нахожу все элементы и устанавливаю все значения и подписываюсь
 
 if IsLoginPage(IElemLogin, IElemPass, IElemForm) then
 begin
   IElemLogin.setAttribute("Value","СкажиПароль",0);
   IElemPass.setAttribute("Value","ДерПароль",0);
   (IElemForm as IHTMLFormElement).submit;
   WaitFullLoad;
 end;

то все проходит, и дальше парсинг на авторизацию не выбрасывает.
При этом программа постоянно обменивается этими запросами..
т.е. SHDocVw.TWebBrowser сам выполняет скрипты и юзер не забывается сервером

Всё гут, но надо это все делать из сервиса
А в сервисе, судя по логам, (IElemForm as IHTMLFormElement).submit; не проходит.

Погуглил. Говорят, выдели ему(TWebBrowser ) хэндл. Говорят, поставь взаимодействие сервиса с рабочим столом.
Попробовал. Не получилось.

Вопрос.
это вариант - "Плохо пробовал, такое можно сделать в принципе"
это вариант - "не в ту сторону смотришь, смотри в .."


 
KilkennyCat ©   (2016-05-30 11:45) [1]

Мне кажется, второй вариант. К сожалению, я уже не в делфи работаю, в с#, и там подобный сайт разбирал. анализировал запросы при помощи https://www.charlesproxy.com/
увидев наличие авторизации и куки, запросы имеют
hwr.Headers.Add(HttpRequestHeader.Cookie, sCookies);
где sCookies - полученные куки при авторизации,
hwr - глобальный HttpWebRequest


 
ВладОшин ©   (2016-05-30 12:24) [2]

гм.. похоже ты прав...
при TIdHTTP после авторизации
вдруг кук
PHPSESSID=uek6kvvt3bks20mafanqhf6hp0;
при очередном GET перескакивает на
PHPSESSID=frmas5oni81qtunab3jqcbsst7;
логично, что сервер спрашивает, а ты кто такой вообще то


 
KilkennyCat ©   (2016-05-30 12:31) [3]

вот-вот, у меня так же.


 
DayGaykin ©   (2016-05-30 13:14) [4]

Почему нельзя просто в инструменте разработчка в браузере посмотреть запросы (с их куками и авторизациями) и подделывать их?


 
ухты ©   (2016-05-30 13:44) [5]

Какие браузеры в сервисе? )))
Надо просто повторить работу запрос-ответ, с установкой необходимых данных. Те же куки пришли-ушли ...


 
ВладОшин ©   (2016-05-30 17:41) [6]

>посмотреть запросы (с их куками и авторизациями) и подделывать их?
>>повторить работу запрос-ответ

именно так и делал сначала(в браузере по f12). лог запросов растет каждую секунду на 2-3 запроса. Все их повторять / нет? А как решить, какие надо / какие- нет?
Браузер в сервисе.. знаю, бредово ). Но он как-то сам общается с сайтом и не жужжит.


 
ухты ©   (2016-05-31 00:08) [7]

Анализировать надо и выкинуть всякие ненужные, типа к яндекса веб-визору, аналитику гугла  и т.п.



Страницы: 1 вся ветка

Текущий архив: 2017.08.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.004 c
15-1449670082
Rouse_
2015-12-09 17:08
2017.08.06
Process Memory Map 1.0 alpha 4


15-1464348284
ttUser
2016-05-27 14:24
2017.08.06
Что такое fb_lock_xxx в Process Explorer в загруженных DLL?


15-1464595253
ВладОшин
2016-05-30 11:00
2017.08.06
Или в TwebBrowser из Tservice сделать Form.Submit .. или ?


2-1442083956
vegarulez
2015-09-12 21:52
2017.08.06
Как подружить scrollbar + scrollbox.


15-1461214250
KilkennyCat
2016-04-21 07:50
2017.08.06
А не планируется ли в начале июня встреча в Москве?