Форум: "Прочее";
Текущий архив: 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