Добрый день! Все тот же сайт http://pro1c.org.ua/redirect.php?http://mprestige.com.ua/zhenskie-sumki-c-299.html, есть на этой странице счетчик количества товара на странице, как его обработать при парсинге этой странице чтобы показывались все товары?
kosalex, задавайте более конкретные вопросы. В ваших темах по парсингу этого сайта никто не отвечает, потому что ваш вопрос сводится "вот код, сделайте чтоб работало". Но за спасибо никто не хочет вникать в вашу задачу и делать её за вас. Поэтому для увеличения шансов на какой-то ответ советую задавать более конкретные вопросы.
Если я правильно понимаю, то страница формируется сервером, Вы лишь читаете результат работы его - данные со страницы.
Вы хотите прочитать данные со страницы, которых там нет, или из 1С управлять сервером, формирующим по запросу браузера страницы/фреймы?
ЧтениеХТМЛ = Новый ЧтениеHTML;
ПостроительДОМ = Новый ПостроительDOM;
//Генерируем имя файла на диске, в который запишется страница сайта
ПреобразуемоеИмяФайла = СтрЗаменить(Адрес, "/", "_");
ПреобразуемоеИмяФайла = СтрЗаменить(ПреобразуемоеИмяФайла,":","_");
ИмяФайла = КаталогЗагрузкиВременныхФайлов + "\catalog\" + ПреобразуемоеИмяФайла + ".html";
//Загружаем нужную нам страницу в каталог
Соединение.Получить(Адрес, ИмяФайла);
//Начинаем чтение нашего файла
ЧтениеХТМЛ.ОткрытьФайл(ИмяФайла, "UTF-8");
//Загружаем всю структуру документа в DOM
ДокументХТМЛ = ПостроительДОМ.Прочитать(ЧтениеХТМЛ);
//Получаем все элементы DIV
ЭлементыСтраницы = ДокументХТМЛ.ПолучитьЭлементыПоИмени("DIV");
1. Сделать то что хотим получить от сайта в "ручном режиме". Потренировать, добиться определенного результата.
2. Делать уже в 1С-ке парсинг. Так-как понятен алгоритм взаимодействия с сайтом.
ЗЫ: Сайт может использовать там JavaScript какой-нибудь, или еще что-то. Вообщем делаем пункт 1, а после уже приступаем к п.2.
Мож-быть, скачать в офф-лайн?
Доброго времени суток! Все пытаюсь получить страницу со ВСЕМИ товарами.
Отправляю на сервер вот такой запрос:
СтрокаПараметров = "Host: " + АдресСайта + Символы.ПС +
"Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8" + Символы.ПС +
"Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3" + Символы.ПС +
"Accept-Encoding: gzip, deflate" + Символы.ПС +
"Referer: " + АдресСтраницы + Символы.ПС +
"Cookie: _ga=GA1.3.1844647940.1435661095; osCsid=9528cb3e119a966ae43edcdc78062fa5; _gat=1" + Символы.ПС +
"Connection: keep-alive" + Символы.ПС +
"Content-Type: application/x-www-form-urlencoded" + Символы.ПС +
"Content-Length: 8" + Символы.ПС +
"onpage: 9" + Символы.ПС;
//Генерируем имя файла на диске, в который запишется страница сайта
ПреобразуемоеИмяФайла = СтрЗаменить(АдресСтраницы, "/", "_");
ПреобразуемоеИмяФайла = СтрЗаменить(ПреобразуемоеИмяФайла,":","_");
ФайлСтраницы = КаталогЗагрузкиВременныхФайлов + "\catalog\dorognie\" + ПреобразуемоеИмяФайла + ".html";
HTTPЗапрос = Новый HTTPЗапрос(АдресСтраницы);
HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаПараметров, КодировкаТекста.UTF8);
HTTPСоединение = Новый HTTPСоединение(АдресСайта);
Попытка
Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос, ФайлСтраницы);
Исключение
Сообщить("Ошибка при отправке запроса: " + ОписаниеОшибки());
КонецПопытки;
Передавайте больше 36.
ТелоЗапроса = "onpage:1000";
ФайлЗапроса = ПолучитьИмяВременногоФайла("txt");
ТекстовыйФайл = Новый ТекстовыйДокумент;
ТекстовыйФайл.УстановитьТекст(ТелоЗапроса);
ТекстовыйФайл.Записать(ФайлЗапроса,КодировкаТекста.UTF8);
ФайлОтправки = Новый Файл(ФайлЗапроса);
РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
//Генерируем имя файла на диске, в который запишется страница сайта
ПреобразуемоеИмяФайла = СтрЗаменить(АдресСтраницы, "/", "_");
ПреобразуемоеИмяФайла = СтрЗаменить(ПреобразуемоеИмяФайла,":","_");
ФайлРезультата = КаталогЗагрузкиВременныхФайлов + "\catalog\dorognie\" + ПреобразуемоеИмяФайла + ".html";
ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("Content-Length", РазмерФайлаОтправки);
ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");
HTTPСоединение = Новый HTTPСоединение(АдресСайта);
Попытка
Ответ = HTTPСоединение.ОтправитьДляОбработки(ФайлЗапроса, АдресСтраницы, ФайлРезультата, ЗаголовокHTTP);
Исключение
Сообщить("Ошибка при отправке запроса: " + ОписаниеОшибки());
КонецПопытки;
Вот какой запрос отсылается на сервер:
POST http://pro1c.org.ua/redirect.php?http://mprestige.com.ua/dorozhnye-sumki-c-316.html
Content-Type: application/x-www-form-urlencoded
onpage=10000
Пытаюсь собрать что то такое же:
ТелоЗапроса = "onpage=1000" + Символы.ПС + Символы.ВК;
//Генерируем имя файла на диске, в который запишется страница сайта
ПреобразуемоеИмяФайла = СтрЗаменить(АдресСтраницы, "/", "_");
ПреобразуемоеИмяФайла = СтрЗаменить(ПреобразуемоеИмяФайла,":","_");
ФайлРезультата = КаталогЗагрузкиВременныхФайлов + "\catalog\dorognie\" + ПреобразуемоеИмяФайла + ".html";
// Для того, чтобы установить заголовки
// POST-запроса создадим соответствие
ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");
ХТТПЗапрос = Новый HTTPЗапрос;
ХТТПЗапрос..УстановитьТелоИзСтроки(ТелоЗапроса);
ХТТПЗапрос.Заголовки = ЗаголовокHTTP;
ХТТПЗапрос.АдресРесурса = АдресСтраницы;
HTTPСоединение = Новый HTTPСоединение(АдресСайта);
Попытка
Ответ = HTTPСоединение.ОтправитьДляОбработки(ХТТПЗапрос, ФайлРезультата);
Исключение
Сообщить("Ошибка при отправке запроса: " + ОписаниеОшибки());
КонецПопытки;
ТелоЗапроса = "POST http://mprestige.com.ua/dorozhnye-sumki-c-316.html" + Символы.ПС +
//"Content-Type: application/x-www-form-urlencoded" + Символы.ПС +
"onpage=10000";
//Генерируем имя файла на диске, в который запишется страница сайта
ПреобразуемоеИмяФайла = СтрЗаменить(АдресСтраницы, "/", "_");
ПреобразуемоеИмяФайла = СтрЗаменить(ПреобразуемоеИмяФайла,":","_");
ФайлРезультата = КаталогЗагрузкиВременныхФайлов + "\catalog\dorognie\" + ПреобразуемоеИмяФайла + ".html";
// Для того, чтобы установить заголовки
// POST-запроса создадим соответствие
ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");
ХТТПЗапрос = Новый HTTPЗапрос;
ХТТПЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
ХТТПЗапрос.Заголовки = ЗаголовокHTTP;
ХТТПЗапрос.АдресРесурса = АдресСтраницы;
HTTPСоединение = Новый HTTPСоединение(АдресСайта);
Попытка
Ответ = HTTPСоединение.ОтправитьДляОбработки(ХТТПЗапрос, ФайлРезультата);
Исключение
Сообщить("Ошибка при отправке запроса: " + ОписаниеОшибки());
КонецПопытки;
Строка адреса для Post попробуйте сделать так: _http://mprestige.com.ua/dorozhnye-sumki-c-316.html?onpage=1000
УРАААА!!!Вот работающий код:
ТелоЗапроса = "&onpage=10000";
//Генерируем имя файла на диске, в который запишется страница сайта
ПреобразуемоеИмяФайла = СтрЗаменить(АдресСтраницы, "/", "_");
ПреобразуемоеИмяФайла = СтрЗаменить(ПреобразуемоеИмяФайла,":","_");
ФайлРезультата = КаталогЗагрузкиВременныхФайлов + "\catalog\dorognie\" + ПреобразуемоеИмяФайла + ".html";
// Для того, чтобы установить заголовки
// POST-запроса создадим соответствие
ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");
ХТТПЗапрос = Новый HTTPЗапрос;
ХТТПЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
ХТТПЗапрос.Заголовки = ЗаголовокHTTP;
ХТТПЗапрос.АдресРесурса = АдресСтраницы;
HTTPСоединение = Новый HTTPСоединение(АдресСайта);
Попытка
Ответ = HTTPСоединение.ОтправитьДляОбработки(ХТТПЗапрос, ФайлРезультата);
Исключение
Сообщить("Ошибка при отправке запроса: " + ОписаниеОшибки());
КонецПопытки;
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua