Парсинг сайта

1. SprayTM 21.10.19 14:07 Сейчас в теме
Делал по примеру https://infostart.ru/public/314045/

Не выводится каталог на форму. При выполнении строки ДокументХТМЛ = ПостроительДОМ.Прочитать(ЧтениеХТМЛ); в заголовок передается значение "301 Moved Permanently"

Как это можно победить?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
3. spacecraft 21.10.19 15:14 Сейчас в теме +0.16 $m
(1) самый частый случай 301 это обращение по протоколу http, а требуется по https. Проверьте.
8. uno-c 234 23.10.19 14:52 Сейчас в теме +0.17 $m
(6)Посмотрите ответ на изначальный запрос, без защищенного соединения. В ответе помимо кода 301 должен прийти заголовок Location - куда была перемещена страница.
Например, вместо
//Загружаем нужную нам страницу в каталог
Соединение.Получить(Каталог, ИмяФайла);
//Начинаем чтение нашего файла

нужно еще заголовок посмотреть
//Загружаем нужную нам страницу в каталог
ХТТПОтвет = Соединение.Получить(Каталог, ИмяФайла);
Сообщить(ХТТПОтвет.Заголовки.Location);
//Начинаем чтение нашего файла
9. uno-c 234 23.10.19 15:08 Сейчас в теме
(8)Кроме того, обратите внимание, что Каталог - это не полный путь к странице, а путь без указания протокола и имени сервера, которое у Вас в строке Сервер = "www.brass.ru". Например, если получаете страницу "https://forum.infostart.ru/forum9/topic228200", то Сервер = "forum.infostart.ru", а Каталог = "/forum9/topic228200". Соответственно
Соединение = Новый HTTPСоединение(Сервер,,,,,,Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос(Каталог); 
Ответ = Соединение.Получить(Запрос);
10. uno-c 234 23.10.19 15:42 Сейчас в теме
(8)
Сообщить(ХТТПОтвет.Заголовки.Location);
Неверно написал, Заголовки - это соответствие, а не структура, т.е. Сообщить(ХТТПОтвет.Заголовки["Location"]);
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
3. spacecraft 21.10.19 15:14 Сейчас в теме +0.16 $m
(1) самый частый случай 301 это обращение по протоколу http, а требуется по https. Проверьте.
4. SprayTM 22.10.19 08:17 Сейчас в теме
(3) сделал защищенное соединение- всё заработало. Но теперь при проходе по каталогу моего сайта, не заполняется файл в каталоге на диске. Точнее не заполняется таблица при проходе этой строки ЭлементыUL = ДокументХТМЛ.ПолучитьЭлементыПоИмени("ul"); в примере вот так ЭлементыTABLE = ДокументХТМЛ.ПолучитьЭлементыПоИмени("TABLE");
5. Serg O. 224 23.10.19 10:27 Сейчас в теме
(1)
301 Moved Permanently

Код состояния HTTP 301 или Moved Permanently (с англ. — «Перемещено навсегда»)

1) возможно ошибка в адресе сайта... или параметрах
2) может сайт перевели на SSH http:// -> https://
3) сохраните страницу в файл и уже чтение из файла сделать... иногда помогает
6. SprayTM 23.10.19 11:42 Сейчас в теме
(5) вот как раз чтение из создаваемого файла 1с не может провести. Пишет что файл не найден, но сам файл создается и имеет вес, правда очень маленький(6 кб). Если открыть файл, то он показывает страницу 404
8. uno-c 234 23.10.19 14:52 Сейчас в теме +0.17 $m
(6)Посмотрите ответ на изначальный запрос, без защищенного соединения. В ответе помимо кода 301 должен прийти заголовок Location - куда была перемещена страница.
Например, вместо
//Загружаем нужную нам страницу в каталог
Соединение.Получить(Каталог, ИмяФайла);
//Начинаем чтение нашего файла

нужно еще заголовок посмотреть
//Загружаем нужную нам страницу в каталог
ХТТПОтвет = Соединение.Получить(Каталог, ИмяФайла);
Сообщить(ХТТПОтвет.Заголовки.Location);
//Начинаем чтение нашего файла
9. uno-c 234 23.10.19 15:08 Сейчас в теме
(8)Кроме того, обратите внимание, что Каталог - это не полный путь к странице, а путь без указания протокола и имени сервера, которое у Вас в строке Сервер = "www.brass.ru". Например, если получаете страницу "https://forum.infostart.ru/forum9/topic228200", то Сервер = "forum.infostart.ru", а Каталог = "/forum9/topic228200". Соответственно
Соединение = Новый HTTPСоединение(Сервер,,,,,,Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос(Каталог); 
Ответ = Соединение.Получить(Запрос);
10. uno-c 234 23.10.19 15:42 Сейчас в теме
(8)
Сообщить(ХТТПОтвет.Заголовки.Location);
Неверно написал, Заголовки - это соответствие, а не структура, т.е. Сообщить(ХТТПОтвет.Заголовки["Location"]);
12. SprayTM 24.10.19 06:13 Сейчас в теме
(10) хотите сказать, что в примере изначально была неправильно описана инструкция получения каталога, и я напрасно себе кипятил мозг?
7. uno-c 234 23.10.19 14:39 Сейчас в теме
(5)
сайт перевели на SSH http:// -> https://
ssh и https - это штуки независимые друг от друга.
13. Serg O. 224 01.11.19 09:48 Сейчас в теме
(7) да, не SSH... я имел ввиду защищённое соединение SSL, а не SSH

т.е. надо использовать последний параметр при создании соединения
Соединение = Новый HTTPСоединение(<Сервер>, <Порт>, <ИмяПользователя>, <Пароль>, <Прокси>, <ЗащищенноеСоединение>)

Защищенное (IsSecure) - Определяет использование протокола http или https.
Истина - https.

или надо в последний параметр писать не Истина, а "Новый ЗащищенноеСоединениеOpenSSL"
14. Serg O. 224 01.11.19 09:50 Сейчас в теме
(13) возможно ещё порт не стандартный... прокси не задан... или таймаут увеличить надо

Новый HTTPСоединение(<Сервер>, <Порт>, <ИмяПользователя>, <Пароль>, <Прокси>, <Таймаут>, <ЗащищенноеСоединение>)
2. comptr 30 21.10.19 14:49 Сейчас в теме
Если сделать HTTP запрос к загружаемой странице, то в ответе должен быть адрес, куда переместили.
11. Smartpk 9 23.10.19 17:06 Сейчас в теме
Нужно выполнять запросы по адресу, указанному в Location, до тех пор, пока не придет ответ без Location. Ну и использовать защищенное соединение, если это необходимо (как уже писали выше)
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день

Специалист техподдержки
Санкт-Петербург
зарплата от 100 руб. до 150 руб.
Полный день