Login
Как подменить браузер?
NEW 07.03.11 09:35
Как подменить браузер? Распознает зараза и на перле и на пхп
Работает и очень хорошо:
<form method="POST" action="http://www......." class="subb">
<input type="hidden" name="travel_type" value="1">
<input type="hidden" name="sector1_o" value="aKUN">
<input type="hidden" name="SearchBy" value="columenView">
<input type="hidden" name="mode" VALUE="0">
<input type="hidden" name="m1DP" value="0">
...
<input type="submit" value="Send">
</form>
А когда пытаюсь на перл:
$url = "http://www.......";
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
#$ua->agent('Mozilla/5.0');
$ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13");
$Headers = new HTTP::Headers(
HTTP_ACCEPT => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
HTTP_ACCEPT_LANGUAGE => 'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
HTTP_KEEP_ALIVE => '115',
GATEWAY_INTERFACE => 'CGI/1.1',
HTTP_ACCEPT_ENCODING => 'gzip,deflate',
HTTP_CONNECTION => 'keep-alive',
REMOTE_PORT => '2300',
SYSTEMROOT => 'C:\WINDOWS',
COMSPEC => 'C:\WINDOWS\system32\cmd.exe',
HTTP_ACCEPT_CHARSET => 'windows-1251,utf-8;q=0.7,*;q=0.7',
WINDIR => 'C:\WINDOWS');
my $req = new HTTP::Request(POST => $url, $Headers);
$req->content_type('application/x-www-form-urlencoded');
$postdata = 'travel_type=1§or1_o=aTFS&module=SB&page=SELECT&...&BalearicUserAnswer=NO& acceptTerms=yes';
$req->content($postdata);
my $res = $ua->request($req);
print "Content-type: text/html\n\n";
print $res->content;
Распознает что робот и говорит:
Object moved to here
Тоже происходит и на ПХП и на Локале и на удалённом сервере.
Спасибо
Работает и очень хорошо:
<form method="POST" action="http://www......." class="subb">
<input type="hidden" name="travel_type" value="1">
<input type="hidden" name="sector1_o" value="aKUN">
<input type="hidden" name="SearchBy" value="columenView">
<input type="hidden" name="mode" VALUE="0">
<input type="hidden" name="m1DP" value="0">
...
<input type="submit" value="Send">
</form>
А когда пытаюсь на перл:
$url = "http://www.......";
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
#$ua->agent('Mozilla/5.0');
$ua->agent("Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13");
$Headers = new HTTP::Headers(
HTTP_ACCEPT => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
HTTP_ACCEPT_LANGUAGE => 'ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
HTTP_KEEP_ALIVE => '115',
GATEWAY_INTERFACE => 'CGI/1.1',
HTTP_ACCEPT_ENCODING => 'gzip,deflate',
HTTP_CONNECTION => 'keep-alive',
REMOTE_PORT => '2300',
SYSTEMROOT => 'C:\WINDOWS',
COMSPEC => 'C:\WINDOWS\system32\cmd.exe',
HTTP_ACCEPT_CHARSET => 'windows-1251,utf-8;q=0.7,*;q=0.7',
WINDIR => 'C:\WINDOWS');
my $req = new HTTP::Request(POST => $url, $Headers);
$req->content_type('application/x-www-form-urlencoded');
$postdata = 'travel_type=1§or1_o=aTFS&module=SB&page=SELECT&...&BalearicUserAnswer=NO& acceptTerms=yes';
$req->content($postdata);
my $res = $ua->request($req);
print "Content-type: text/html\n\n";
print $res->content;
Распознает что робот и говорит:
Object moved to here
Тоже происходит и на ПХП и на Локале и на удалённом сервере.
Спасибо
Половина евро в час
NEW 07.03.11 09:52
in Antwort miltorg 07.03.11 09:35
Возьми любой логер и посмотри чем отличаются запросы.
NEW 07.03.11 10:00
in Antwort miltorg 07.03.11 09:35, Zuletzt geändert 07.03.11 10:01 (voxel3d)
referer в заголовки запихни, сделай его равным адресу странички той, скорее всего, оно проверяется.
Dropbox - средство синхронизации и бэкапа файлов.
07.03.11 10:18
А что за зверь такой?
Я гнал запросы на свой скрипт:
print "Content-type: text/html\n\n";
print %ENV;
print "------------------\n\n";
while ( my ($key, $value) = each(%ENV) ) {
print "$key => '$value',\n";
}
Вот перехват заголовков:
in Antwort Murr 07.03.11 09:52, Zuletzt geändert 07.03.11 16:09 (miltorg)
В ответ на:
Возьми любой логер и посмотри чем отличаются запросы.
Возьми любой логер и посмотри чем отличаются запросы.
А что за зверь такой?
Я гнал запросы на свой скрипт:
print "Content-type: text/html\n\n";
print %ENV;
print "------------------\n\n";
while ( my ($key, $value) = each(%ENV) ) {
print "$key => '$value',\n";
}
Вот перехват заголовков:
Половина евро в час
NEW 07.03.11 10:24
Форма кнопки работает хоть от куда.
in Antwort voxel3d 07.03.11 10:00
В ответ на:
referer в заголовки запихни, сделай его равным адресу странички той, скорее всего, оно проверяется.
referer в заголовки запихни, сделай его равным адресу странички той, скорее всего, оно проверяется.
Форма кнопки работает хоть от куда.
Половина евро в час
NEW 07.03.11 10:32
in Antwort miltorg 07.03.11 10:24
пока ты эксперементировал тебя могли забанить по ip
Продвижение сайтов, реклама: https://www.pro33.net
NEW 07.03.11 10:32
in Antwort miltorg 07.03.11 10:18
Рабочие и не рабочие запросы отличаются количеством переводов строк, но как это поменять? И повлияет ли это на что то?
Половина евро в час
07.03.11 10:33
Но кнопка работает хорошо и всегда.
in Antwort project33 07.03.11 10:32
В ответ на:
пока ты эксперементировал тебя могли забанить по ip
пока ты эксперементировал тебя могли забанить по ip
Но кнопка работает хорошо и всегда.
Половина евро в час
NEW 07.03.11 10:44
Tamper Data для файрфокса. Firebug ещё умеет перехватывать запросы, но в нём менее подробно. В твоём листинге сложно найти что-то, слишком длинная неформатированная простыня. Озвучь урл, так проще будет найти причину.
in Antwort miltorg 07.03.11 10:18
В ответ на:
А что за зверь такой?
Я гнал запросы на свой скрипт:
А что за зверь такой?
Я гнал запросы на свой скрипт:
Tamper Data для файрфокса. Firebug ещё умеет перехватывать запросы, но в нём менее подробно. В твоём листинге сложно найти что-то, слишком длинная неформатированная простыня. Озвучь урл, так проще будет найти причину.
Dropbox - средство синхронизации и бэкапа файлов.
NEW 07.03.11 11:29
Это то, что вам выдаст скрипт в любом случае.
Скрипты на локале.
Урл чего? Запроса? Вот полный листинг ответа:
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="http://www.......">here</a>.</h2>
</body></html>
in Antwort voxel3d 07.03.11 10:44
В ответ на:
слишком длинная неформатированная простыня.
слишком длинная неформатированная простыня.
Это то, что вам выдаст скрипт в любом случае.
Скрипты на локале.
В ответ на:
Озвучь урл, так проще будет найти причину.
Озвучь урл, так проще будет найти причину.
Урл чего? Запроса? Вот полный листинг ответа:
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="http://www.......">here</a>.</h2>
</body></html>
Половина евро в час
NEW 07.03.11 11:55
Штука отличная - спасибо, но применения к моему случаю пока не нашёл.
in Antwort voxel3d 07.03.11 10:44
В ответ на:
Tamper Data для файрфокса.
Tamper Data для файрфокса.
Штука отличная - спасибо, но применения к моему случаю пока не нашёл.
Половина евро в час
NEW 07.03.11 11:58
in Antwort miltorg 07.03.11 11:29, Zuletzt geändert 07.03.11 12:04 (voxel3d)
Url оригинальной странички с формой. Тут листинги - гадание на кофейной гуще, мне проще самому попробовать, посмотреть. Пока я был уверен, что могу сделать любого бота. 

Dropbox - средство синхронизации и бэкапа файлов.
NEW 07.03.11 12:23
in Antwort miltorg 07.03.11 12:06
Форма:
<form method="POST" action="http://www.b........" class="subb">
<input type="hidden" name="travel_type" value="1">
<input type="hidden" name="mode" VALUE="0">
<input type="hidden" name="m1DP" value="0">
<input type="hidden" name="m1DO" value="0">
<input type="hidden" name="m2DP" value="0">
<input type="hidden" name="m2DO" value="0">
<input type="hidden" name="pM" value="0">
<input type="hidden" name="tc" value="1">
<input type="hidden" name="module" value="SB">
<input type="hidden" name="page" value="SELECT">
<input type="hidden" name="BalearicUserAnswer" value="NO">
<input type="hidden" name="acceptTerms" value="yes">
<input type="submit" value="Send">
</form>
<form method="POST" action="http://www.b........" class="subb">
<input type="hidden" name="travel_type" value="1">
<input type="hidden" name="mode" VALUE="0">
<input type="hidden" name="m1DP" value="0">
<input type="hidden" name="m1DO" value="0">
<input type="hidden" name="m2DP" value="0">
<input type="hidden" name="m2DO" value="0">
<input type="hidden" name="pM" value="0">
<input type="hidden" name="tc" value="1">
<input type="hidden" name="module" value="SB">
<input type="hidden" name="page" value="SELECT">
<input type="hidden" name="BalearicUserAnswer" value="NO">
<input type="hidden" name="acceptTerms" value="yes">
<input type="submit" value="Send">
</form>
Половина евро в час
07.03.11 13:39
Это я видел Tamper Data
Получается что одного запроса мало? Чё то не очень понятно как это сделать на перл? Точнее я это ни разу не делал.
Получается что в ответе сервера на 1 приходит инструкция которая не высвечивается? Она в заголовках что ли?
Спасибо огромное.
in Antwort voxel3d 07.03.11 11:58, Zuletzt geändert 07.03.11 13:41 (miltorg)
В ответ на:
т.е.
1. Post запрос
2. Ответ с урлом найденного документа и куками кот надо установить
3. GET-запрос(ы)
4. Придёт нужный результат
т.е.
1. Post запрос
2. Ответ с урлом найденного документа и куками кот надо установить
3. GET-запрос(ы)
4. Придёт нужный результат
Это я видел Tamper Data
Получается что одного запроса мало? Чё то не очень понятно как это сделать на перл? Точнее я это ни разу не делал.
Получается что в ответе сервера на 1 приходит инструкция которая не высвечивается? Она в заголовках что ли?
Спасибо огромное.
Половина евро в час
NEW 07.03.11 14:06
in Antwort miltorg 07.03.11 13:39
Поправьте, если не прав:
1. Мой запрос правильный.
2. На него приходит ответ 302 устанавливаются куки и нужно перенаправить запрос на Location=http://www.b....com/skysales/FRSelect.aspx
Спасибо.
1. Мой запрос правильный.
2. На него приходит ответ 302 устанавливаются куки и нужно перенаправить запрос на Location=http://www.b....com/skysales/FRSelect.aspx
Спасибо.
Половина евро в час
NEW 07.03.11 15:20
Да, именно так.
Вот посмотри, урлы порезал, объяснение постом ниже и это ещё не готовое решение, а только шаг к нему:
in Antwort miltorg 07.03.11 14:06, Zuletzt geändert 07.03.11 16:40 (voxel3d)
В ответ на:
1. Мой запрос правильный.
2. На него приходит ответ 302 устанавливаются куки и нужно перенаправить запрос на Location=http://www.b....com/skysales/FRSelect.aspx
1. Мой запрос правильный.
2. На него приходит ответ 302 устанавливаются куки и нужно перенаправить запрос на Location=http://www.b....com/skysales/FRSelect.aspx
Да, именно так.
Вот посмотри, урлы порезал, объяснение постом ниже и это ещё не готовое решение, а только шаг к нему:
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Cookies;
my $ua = new LWP::UserAgent;
$ua->agent('Mozilla/5.0 (Windows NT 5.1; rv:2.0b12) Gecko/20100101 Firefox/4.0b12');
my $req1 = new HTTP::Request 'GET',' _cut_ Search.aspx';
my $res1 = $ua->request($req1);
$res1->header('Set-Cookie') =~ m/ASP.NET_SessionId=([^;]*)/gi;
my $id = $1;
my $req2 = new HTTP::Request 'POST',' _cut_ Search.aspx';
$req2->header('Content-Type' => 'application/x-www-form-urlencoded',
'Cookie' => 'ASP.NET_SessionId=$id; acceptTerms=; xtvrn=$384235$;');
$req2->content('__EVENTTARGET=&__EVENTARGUMENT=&__VIEWSTATE= ... _cut_ ...');
my $res2 = $ua->request($req2);
print $res2->as_string;
my $req3 = new HTTP::Request 'GET',' _cut_ FRSelect.aspx';
$req3->header('Cookie' => 'ASP.NET_SessionId=$id; acceptTerms=; xtvrn=$384235$;');
my $res3 = $ua->request($req3);
print $res3->as_string;
exit;
Dropbox - средство синхронизации и бэкапа файлов.
NEW 07.03.11 15:39
in Antwort voxel3d 07.03.11 15:20, Zuletzt geändert 07.03.11 15:45 (voxel3d)
Обрежь, плз, в своих сообщениях длинные строки, чтобы топик не косячило и не появлялась горизонтальная строка прокрутки.
Итак. Сначала GET-запрос на получение поисковой формы ($req1). В ответе в заголовке приходит команда установить куки:
ASP.NET_SessionId=ХХХХХ; path=/; HttpOnly
в процессе рендеринга этой странички отрабатывает js, который каким-то образом вычисляет и устанавливает ещё одну куку -
xtvrn=$384235$
- "каким-то образом" означает, что js-код подвергнут обфускации и без возни не посмотреть, как он там производит вычисления.
Далее идёт POST-запрос ($req2) на Search.aspx, отправляющий данные формы. В ответ приходит либо 302 на который надо запросить указанный url, либо 200 и сам документ. В каких случаях 302, а в каких 200, я пока не разобрался. В случае 302 надо просто сделать GET запрос на FRSearch.aspx, который должен возвращать нужный контент.
Должен, но пока не возвращает, т.к. пока не передаётся переменная отвечающая за принятие соглашения - я не вижу в сниффере, где её передают, в куках ходит пустое значение acceptTerms. В общем, где-то близко уже.
Итак. Сначала GET-запрос на получение поисковой формы ($req1). В ответе в заголовке приходит команда установить куки:
ASP.NET_SessionId=ХХХХХ; path=/; HttpOnly
в процессе рендеринга этой странички отрабатывает js, который каким-то образом вычисляет и устанавливает ещё одну куку -
xtvrn=$384235$
- "каким-то образом" означает, что js-код подвергнут обфускации и без возни не посмотреть, как он там производит вычисления.
Далее идёт POST-запрос ($req2) на Search.aspx, отправляющий данные формы. В ответ приходит либо 302 на который надо запросить указанный url, либо 200 и сам документ. В каких случаях 302, а в каких 200, я пока не разобрался. В случае 302 надо просто сделать GET запрос на FRSearch.aspx, который должен возвращать нужный контент.
Должен, но пока не возвращает, т.к. пока не передаётся переменная отвечающая за принятие соглашения - я не вижу в сниффере, где её передают, в куках ходит пустое значение acceptTerms. В общем, где-то близко уже.
Dropbox - средство синхронизации и бэкапа файлов.
NEW 07.03.11 15:49
Просто последовательностью отправлений запросов и приёма ответов. Устанавливаются нужные куки / заголовки. Кст., здесь заголовки не проверяются на предмет чтобы с их сайта отсылали, их можно опустить.
in Antwort miltorg 07.03.11 13:39
В ответ на:
Чё то не очень понятно как это сделать на перл?
Чё то не очень понятно как это сделать на перл?
Просто последовательностью отправлений запросов и приёма ответов. Устанавливаются нужные куки / заголовки. Кст., здесь заголовки не проверяются на предмет чтобы с их сайта отсылали, их можно опустить.
Dropbox - средство синхронизации и бэкапа файлов.
NEW 07.03.11 16:14
Свои удалил - это похоже ваши.
Спасибо огромное. Хоть стало понятно куда рыть.
Это сайт авиабилетов. Я благодаря ему на Канары летал за 30 евро.
in Antwort voxel3d 07.03.11 15:49
В ответ на:
Обрежь, плз, в своих сообщениях длинные строки, чтобы топик не косячило и не появлялась горизонтальная строка прокрутки.
Обрежь, плз, в своих сообщениях длинные строки, чтобы топик не косячило и не появлялась горизонтальная строка прокрутки.
Свои удалил - это похоже ваши.
Спасибо огромное. Хоть стало понятно куда рыть.
Это сайт авиабилетов. Я благодаря ему на Канары летал за 30 евро.
Половина евро в час