![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Дождаться выполнения скрипта. [D7]
Mach3 © (2011-11-01 08:20:00)Привет. Пытаюсь загрузить страничку, кликнуть по "кнопке" и после получить нужный контент. Но как дождаться окончания выполнения Java скрипта не знаю.
WebBrowser1.Navigate(' http://www.ru');
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
Application.ProcessMessages;
WebBrowser1.OleObject.Document.getElementByID('show_contacts').click;
S:= WebBrowser1.OleObject.Document.getElementByID('show_contacts').innerHTML;
Необходимо, чтобы в S содержалось значение после выполнения скрипта..
Mach3 (2011-11-03 06:24:00) [1]=))))))))))))))
Всем спасибо..
Омлет (2011-11-01 18:10:00) [2]Странную, однако, "защиту" придумал камрад Кирилл Ковальчук..
А найдя эту ветку по логам с сервера, он "защиту" сделает ещё странней ))
Медвежонок Пятачок (2011-11-01 18:00:00) [3]заголовки разные.
сервер ничего кроме заголовков не получает и не может ни по чему иному определить что у него тянут номера телефонов.
Омлет (2011-11-01 17:59:00) [4]Оказалось, что параметр "_" реально не нужен, он, наверное, только для защиты от кэширования.
Обязательно должны быть два поля в заголовке:
X-Requested-With XMLHttpRequest
Referer http://ussuriisk.drom.ru/toyota/succeed/6054110.html
Тогда возвращает верный номер и не требует капчу. Проверял с помощью плагина HttpRequester к фаерфоксу.
Mach3 (2011-11-01 17:23:00) [5]так ведь вроде уже определились, что заголовки одинаковые..
остается только неопознанный параметр ("_")
Медвежонок Пятачок (2011-11-01 17:11:00) [6]какое еще-то решение?
заголовок надо чтобы был такой же как при аяксе.
у сервера больше нет никаких средств чтобы понять, что его обманывают
Mach3 (2011-11-01 17:03:00) [7]Если есть еще идеи- буду рад читать..
Решение с TWebBrowser нашел, но хотелось бы сэмулировать запрос.
Mach3 (2011-11-01 16:50:00) [8]
> Но, подозреваю, что именно по первому параметру ("_")
Тоже так думаю..
Mach3 (2011-11-01 16:49:00) [9]пробовал удалить все куки из браузер и отключить их получение.
результата не дало.. номер отображался правильно.
Омлет (2011-11-01 16:48:00) [10]Там, действительно, есть какая-то защита.
И на некоторых страницах капча..
Возможно, хидер как-то влияет на резульата.
Это, к примеру, запрашивает ajax:
(Request-Line) GET /auto/?_=1320169503840&bull_id=6035047&obj=show_contacts&crossdomain_ajax_request=2&re quest=ajax_show_contacts HTTP/1.1
Host ussuriisk.drom.ru
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Accept application/xml, text/xml, */*
Accept-Language ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Connection keep-alive
Content-Type application/x-www-form-urlencoded
X-Requested-With XMLHttpRequest
Referer http://ussuriisk.drom.ru/toyota/succeed/6035047.html
Cookie cookie_cityid=9; cookie_regionid=66; DromCurrencyCookie=1; my_geo=66; PHPSESSID=c7c79f267c9ea95e5d356e1a7ca84915
А это из адресной строки вызов:
(Request-Line) GET /auto/?_=1320169503840&bull_id=6035047&obj=show_contacts&crossdomain_ajax_request=2&re quest=ajax_show_contacts HTTP/1.1
Host ussuriisk.drom.ru
User-Agent Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7
Connection keep-alive
Cookie cookie_cityid=9; cookie_regionid=66; DromCurrencyCookie=1; my_geo=66; PHPSESSID=c7c79f267c9ea95e5d356e1a7ca84915
Но, подозреваю, что именно по первому параметру ("_"), распознается робот и отдается неверный код оператора. Я сходу не вижу, откуда достается этот параметр.
sniknik (2011-11-01 16:46:00) [11]а понял, в куках регион есть, первые цифры наверное от него зависят.
sniknik (2011-11-01 16:44:00) [12]упс... нет, сейчас поменялся, видать там из кэша смотрел.
sniknik (2011-11-01 16:40:00) [13]всего там хватает...
тот же самый запрос со страницы при нажатии кнопки получает именно +7 (996) 261-0278 (по данным фаребага) но отображает +7 (924) 261-0278
защита? ;)
Mach3 (2011-11-01 16:40:00) [14]"Откуда пришли" указать?
Медвежонок Пятачок (2011-11-01 16:38:00) [15]Почти одно и тоже
так тебе почти одни и те же коды оперторов возвращаются в обоих случаях.
ну немного отличаются.
но не на порядок же.
Медвежонок Пятачок (2011-11-01 16:36:00) [16]ты в заголовки-то смотри в случае гета из браузера и гета аяксового.
> не суди.. и не судимым будешь..
не тупи и не тупым будешь
Mach3 (2011-11-01 16:36:00) [17]
(Request-Line):GET /auto/?_=1320154001505&bull_id=5800891&obj=show_contacts&crossdomain_ajax_request=2&re quest=ajax_show_contacts HTTP/1.1
User-Agent:Opera/9.80 (Windows NT 5.1; U; MRA 5.7 (build 03639); ru) Presto/2.9.168 Version/11.51
Host:ussuriisk.drom.ru
Accept-Language:ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding:gzip, deflate
Referer: http://ussuriisk.drom.ru/toyota/succeed/5800891.html
Cookie:PHPSESSID=6d4dc5cfeb76f2390bf7d3caad5c209b; cookie_cityid=4; cookie_regionid=25; DromCurrencyCookie=1; my_geo=25; __utma=175010237.909993659.1292484248.1320132495.1320151997.38; __utmb=175010237.8.10.1320151997; __utmc=175010237; __utmz=175010237.1320132495.37.3.utmcsr=delphimaster.ru|utmccn=(referral)|utmcmd =referral|utmcct=/cgi-bin/forum.pl
Connection:Keep-Alive
Content-Type:application/x-www-form-urlencoded
X-Requested-With:XMLHttpRequest
Accept:application/xml, text/xml, */*
(Request-Line):GET /auto/?_=1320154001505&bull_id=5800891&obj=show_contacts&crossdomain_ajax_request=2&re quest=ajax_show_contacts HTTP/1.1
Content-Type:text/html
Host:ussuriisk.drom.ru
Accept:text/html, */*
User-Agent:Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
Почти одно и тоже
Mach3 (2011-11-01 16:34:00) [18]Поделитесь? я ничего не вижу =((((
Медвежонок Пятачок (2011-11-01 16:28:00) [19]по крайней мере два потенциальных поля для этого я там вижу
Медвежонок Пятачок (2011-11-01 16:23:00) [20]видимо не хватает полей в заголовке гет запроса, а они анализируются сервером.