Консультация № 179990
22.09.2010, 20:13
43.65 руб.
0 6 1
Здравствуйте уважаемые эксперты. Есть необходимость проверять наименование юридического лица по ИНН в автоматическом режиме. У ФНС есть ресурс http://egrul.nalog.ru/fns/ где можно узнать необходимый минимум информации по ИНН. Пытался сделать процедуру посредством POST запроса, но нечего не получилось, так как знаний по веб - технологиям нет. POST запрос все время возвращает в ответ туже страницу к которой был запрос. Вот пример процедуры:
var
response : string;
post : TStringList;
begin
post := TStringList.Create();
post.AddStrings(postMemo.Lines);
post.Add('num=7706652709');
response := idHTTP1.Post('http://egrul.nalog.ru/fns/g.php',post);
memo1.Lines.Add(response);
end;
Подскажите пожалуйста что не так. Может параметры передаю нетак…
Пробовал и Post.Add('name=&address=®ion=%C2%F1%E5+%F0%E5%E3%E8%EE%ED%FB&date=&num=7706652709&action=%C8%F1%EA%E0%F2%FC');
Результат тот же.
Как осуществить правильный запрос???

Обсуждение

Неизвестный
22.09.2010, 22:17
общий
это ответ
Здравствуйте, PaTiFoN.

Скорее всего дело в кукисах.
Попробуйте отключить их в браузере и увидите туже картину: вместо ответа на запрос таже страница что и в начале.

Для отладки post запросов рекомендую использовать локальный прокси сервер fiddler 2.
Как передать кикисы можно посмотреть в этой статье URL >>
4
Кукисы не помогли... <br>Но блог про парсинг интересный.<br>Наверное прийдется искать другое решение...
давно
Мастер-Эксперт
425
4118
24.09.2010, 09:04
общий
PaTiFoN:
Я думаю, что там присутствует какой-то дополнительный параметр, который Вы не видите. Косвенным доказательством тому служат:
1. Если запросить g.php при этом выключив в компоненте перенаправление, то получаем ошибку 302, т.е. страница находится по другому адресу. Это наводит на подозрение, что такое "черезлевостраничное" получение данных сделано не зря. Промежуточная страница выполняет какие-то функции.
2. Если зайти на главную страницу сайта (http://www.valaam-info.ru/, т.к. он работает не в пример быстрее указанного Вами ), то можно увидеть, что для получения аналогичных сведений требуется ввести код с картинки. Отчего такое различие - fns кода не требует, а www.valaam-info.ru требует, хотя сведения одинаковы? Это, опять же, наводит на подозрение, что код всё таки нужен, но на специальной странице он генерируется автоматически.

Я Вам рекомендую связаться с администрацией сайта, изложить им свои затруднения и узнать, что они думают по этому поводу. Искать же способ получения информации другими методами будет малопродуктивно.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
24.09.2010, 11:56
общий
sir Henry:
Да уже сделал только через TWebBrowser. Шуршит...
А через POST не получилось. Да я и не растроился...
давно
Мастер-Эксперт
425
4118
24.09.2010, 12:30
общий
PaTiFoN:
TWebBrowser работает через реальный браузер - IE, т.е. это не самостоятельный компонент, как Indy. Таким образом сейчас то решение, которое Вы применили, ничем не отличается от того, как если бы Вы запустили IE, только в свёрнутом состоянии. Так что если Вы планируете работу программы только в среде Windows. то это нормальный рабочий вариант.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Неизвестный
24.09.2010, 15:00
общий
sir Henry:
Правда через 120 записей забанили. Надо будет добавить задержку или смену IP
давно
Мастер-Эксперт
425
4118
24.09.2010, 15:38
общий
PaTiFoN:
Цитата: 68011
Правда через 120 записей забанили.

Так я же и говорю - там есть ещё один параметр, специально против таких же ботов сделано.
Лучше всего сделать задержку. Смена IP наверное не поможет, т.к. там наверняка реальные IP проверяются, а не локальные.
Об авторе:
Я только в одном глубоко убеждён - не надо иметь убеждений! :)
Форма ответа