Имя: Пароль:
1C
1С v8
Парсинг сайта
0 extrim-style
 
03.09.13
12:07
Подскажите, как правильно передать параметры?

    HTTP  = Новый HTTPСоединение("http://www.kartoteka.ru";);
    
    Заголовки = Новый Соответствие();
    Заголовки.Вставить("Content-Type", "text/html;charset=windows-1251");

    Запрос = Новый HTTPЗапрос("/", Заголовки);
    Запрос.УстановитьТелоИзСтроки("<form method=""post"" action=""http://www.kartoteka.ru/search/""><input name=""query"" value=""7727507300""></form>");
    
    Ответ = HTTP.ОтправитьДляОбработки(Запрос);
    Ст = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.ANSI);
    
    Сообщить(Ст);
1 extrim-style
 
03.09.13
12:09
+(0) что-то дополнительно оработалось
action=""http://www.kartoteka.ru/search/"";
2 extrim-style
 
03.09.13
12:13
Заголовки = Новый Соответствие();
    Заголовки.Вставить("Content-Type", "text/html;charset=windows-1251");

    Запрос = Новый HTTPЗапрос("/", Заголовки);
    Запрос.УстановитьТелоИзСтроки("<form method=""post"" action=""http://www.kartoteka.ru/search/""><input name=""query"" value=""7727507300""></form>");

    Ответ = HTTP.ОтправитьДляОбработки(Запрос);
    Ст = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.ANSI);
    
    Сообщить(Ст);
3 extrim-style
 
03.09.13
12:16
мда... ну вобщем вместо ссылки - /search/""><input name=""query"" value=""7727507300""></form>
4 extrim-style
 
03.09.13
12:20
хочу получить карточку по инн
5 extrim-style
 
03.09.13
12:32
Ап
6 Адинэснег
 
03.09.13
12:35
поставь Чарли и посмотри что и как передается
7 extrim-style
 
03.09.13
12:41
(6) Чарли?
8 manyak
 
03.09.13
12:42
(6) или другую программу сниффер, увидишь какой запрос браузер посылает на сайт
9 manyak
 
03.09.13
12:42
http сниффер
10 PLUT
 
03.09.13
12:44
(0) http://infostart.ru/public/166049/

там есть картотека
11 extrim-style
 
03.09.13
12:44
(6)(8) спс. попробую.
А Opera Dragonfly не содержит этих средств? Никто не в курсе?
12 extrim-style
 
03.09.13
12:45
(10) я знаю.
13 manyak
 
03.09.13
12:48
(11) да, закладка "сеть"
14 extrim-style
 
03.09.13
15:57
Сделал по аналогии, как здесь - v8: v8: HTTP Запрос (ОтправитьДляОбработки())

В ответе приходит только ссылка на MainPage:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="http://www.kartoteka.ru/query/">here</a>.</p>;
</body></html>

Код:

ИмяФайлаОтправки = ПолучитьИмяВременногоФайла("txt");
    
    POSTПараметры = Новый ЗаписьТекста(ИмяФайлаОтправки, КодировкаТекста.UTF8,, Истина, Символы.ПС); //ТекстБезБОМ

    POSTПараметры.Записать("main-page=1&selectsrch=1&query=7727507300");
    POSTПараметры.Закрыть();

    ИмяВыходногоФайла = ПолучитьИмяВременногоФайла("txt");

    Заголовки = Новый Соответствие();

    Заголовки.Вставить("POST http://www.kartoteka.ru/search/ HTTP/1.1");
    Заголовки.Вставить("Host", "http://www.kartoteka.ru";);
    Заголовки.Вставить("Referer", "http://www.kartoteka.ru/?query=123";);

    Заголовки.Вставить("Cookie", КукиПокаПодставляюВручнуюИзБраузера);
    Заголовки.Вставить("Connection", "keep-alive");
    Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded");
    Заголовки.Вставить("Content-Length", "41"); //временно для текущего запроса значение взял из браузера

    Соединение = Новый HTTPСоединение("http://www.kartoteka.ru";);
    Соединение.ОтправитьДляОбработки(ИмяФайлаОтправки, "query", ИмяВыходногоФайла, Заголовки);
        
    Попытка
        УдалитьФайлы(ИмяФайлаОтправки);
    Исключение
    КонецПопытки;
    
    ТекстовыйДокумент = Новый ТекстовыйДокумент;
    ТекстовыйДокумент.Прочитать(ИмяВыходногоФайла);

    Ответ = ТекстовыйДокумент.ПолучитьТекст();
    ЭтаФорма.ОтветHTML = ТекстовыйДокумент.ПолучитьТекст();
    
    Попытка
        УдалитьФайлы(ИмяВыходногоФайла);
    Исключение
    КонецПопытки;

Что тут попрямить? Или подскажите хотябы как куки подставлять? В примере из ссылки выше:

WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
WinHttp.Option(2,"Windows-1251");
WinHttp.Open("POST", "https://site.ru",0);

WinHttp.Send(НовыйЗапрос);

Кукиз= WinHttp.getResponseHeader("Set-cookie");



В НовыйЗапрос нужно что-то передавать? Пробовал пустой отправить, что-то не фурыкает.
15 extrim-style
 
03.09.13
16:02
+(14) вместо длинных ссылок там короткие
16 extrim-style
 
03.09.13
16:07
Запрос к сайту идет такой:
Запрос
POST http://www.kartoteka.ru/search/ HTTP/1.1
User-Agent: Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.13
Host: http://www.kartoteka.ru
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate
Proxy-Authorization: МояАвторизацияНаПрокси
Referer: http://www.kartoteka.ru/?query=123
Cookie: МоиКуки
Connection: Keep-Alive
Content-Length: 41
Content-Type: application/x-www-form-urlencoded

Имя       Значение
main_page         1
selectsrch           1
query    7727507300
17 extrim-style
 
03.09.13
16:34
Ап
18 extrim-style
 
04.09.13
10:33
Ап
19 extrim-style
 
04.09.13
15:08
Need help
20 extrim-style
 
04.09.13
15:09
+(19) упс... с учетом ситуации в мире правильно говорить - "нужна помощь!")