Имя: Пароль:
1C
1С v8
Как получить код страницы сайта kinopoisk.ru?
0 СЕсин
 
09.08.16
19:00
Всем привет! Делаю для собственного развлечения одну внешнюю обработку на управляемых формах. Но вопрос, чисто технический и в принципе, может  в работе возникнуть.
Хочу скачать и пропарсить страницу сайта kinopoisk.ru, чтобы вытащить рейтинги фильмов. Пытаюсь скачать страницу с помощью HTTPЗапрос. Страницы с конкретным именем, спокойно скачиваются. Но вот, например, топ 250 фильмов - https://www.kinopoisk.ru/top/
Здесь нет адреса конкретной страницы, типа https://www.kinopoisk.ru/top.html
Подскажите как быть? Возможно ли получить код страницы, которая открывается, когда переходишь по этой ссылке?
Не понимаю как это устроено.
1 В тылу врага
 
09.08.16
19:02
у меня https://www.kinopoisk.ru/film/326/ конкретная страница
2 СЕсин
 
09.08.16
19:09
Ну я серьезно, не могу понять, как её программно скачать. Ссылка заканчивается на "/". Если в браузере щелкнуть правой кнопкой и выбрать "сохранить как", он сохранит её с расширение html. Как мне тот же самый файл программно скачать? В Адресе ресурса что указывать?
Если я указываю https://www.kinopoisk.ru/top/ - нихрена не происходит.

HTTPЗапрос (HTTPRequest)
По адресу ресурса и заголовкам
Синтаксис:

Новый HTTPЗапрос(<АдресРесурса>, <Заголовки>)
Параметры:

<АдресРесурса> (обязательный)

Тип: Строка.
Адрес ресурса, к которому будет происходить HTTP-запрос.
3 СЕсин
 
09.08.16
19:22
HTTPЗапрос возвращает код состояния 301. Значение Location = "https://www.kinopoisk.ru/top/";. Т.е. как я понимаю, сервер говорит, что запрашиваемый ресурс находится по другому адресу и выдает тот же самый адрес, который я запрашивал.
4 СЕсин
 
09.08.16
19:36
Так. Сработала вот эта хрень, если че.

Функция ПолучитьТекстСайта(Ссылка);
    ПолныйТекстСайта="";
    Сайт = Новый COMОбъект("InternetExplorer.Application");
    Сайт.Visible = Ложь;
    //Состояние("Подключение к " + Ссылка);
    Сайт.Navigate(Ссылка);
    Пока Сайт.ReadyState < 4 Цикл
    КонецЦикла;
    Попытка
        ПолныйТекстСайта = Сайт.Document.documentElement.innerHTML;
    Исключение
    КонецПопытки;
    
    Сайт.Quit();
    Возврат ПолныйТекстСайта;
КонецФункции
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн