Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2017.08.06;
Скачать: [xml.tar.bz2];

Вниз

Или в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.001 c
3-1314350077
tomkat
2011-08-26 13:14
2017.08.06
FireBird 2.0 потерял свою базу с паролями


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


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


15-1449670082
Rouse_
2015-12-09 17:08
2017.08.06
Process Memory Map 1.0 alpha 4


1-1352726500
harisma
2012-11-12 17:21
2017.08.06
Excell как OLE Object





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский