Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Добрый день! Все тот же сайт [необходимо зарегистрироваться для просмотра ссылки], есть на этой странице счетчик количества товара на странице, как его обработать при парсинге этой странице чтобы показывались все товары?
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2
kosalex, задавайте более конкретные вопросы. В ваших темах по парсингу этого сайта никто не отвечает, потому что ваш вопрос сводится "вот код, сделайте чтоб работало". Но за спасибо никто не хочет вникать в вашу задачу и делать её за вас. Поэтому для увеличения шансов на какой-то ответ советую задавать более конкретные вопросы.
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(Vofka @ 23.07.15, 12:06)
kosalex, задавайте более конкретные вопросы. В ваших темах по парсингу этого сайта никто не отвечает, потому что ваш вопрос сводится "вот код, сделайте чтоб работало". Но за спасибо никто не хочет вникать в вашу задачу и делать её за вас. Поэтому для увеличения шансов на какой-то ответ советую задавать более конкретные вопросы.
Плохо что так понимаете "вот код, сделайте чтобы работало". Я привожу код для того чтобы кто то смог подсказать, может я где то не так пишу код. А не для того чтобы кто то за меня что то делал. :-)
Конкретный вопрос, как средствами 1С получить все товары на этой странице [необходимо зарегистрироваться для просмотра ссылки]? У меня получается получить список товаров ограниченный счетчиком. Другими словами что нужно сделать чтобы загрузилась полностью вся страница?
Если я правильно понимаю, то страница формируется сервером, Вы лишь читаете результат работы его - данные со страницы. Вы хотите прочитать данные со страницы, которых там нет, или из 1С управлять сервером, формирующим по запросу браузера страницы/фреймы?
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(python @ 23.07.15, 12:29)
Если я правильно понимаю, то страница формируется сервером, Вы лишь читаете результат работы его - данные со страницы. Вы хотите прочитать данные со страницы, которых там нет, или из 1С управлять сервером, формирующим по запросу браузера страницы/фреймы?
Как я понимаю, мне нужно через что то отправить серверу запрос, чтобы он мне выдал страницу со всеми товарами. Сейчас я делаю вот так:
ЧтениеХТМЛ = Новый ЧтениеHTML; ПостроительДОМ = Новый ПостроительDOM;
//Генерируем имя файла на диске, в который запишется страница сайта ПреобразуемоеИмяФайла = СтрЗаменить(Адрес, "/", "_"); ПреобразуемоеИмяФайла = СтрЗаменить(ПреобразуемоеИмяФайла,":","_");
//Загружаем нужную нам страницу в каталог Соединение.Получить(Адрес, ИмяФайла);
//Начинаем чтение нашего файла ЧтениеХТМЛ.ОткрытьФайл(ИмяФайла, "UTF-8"); //Загружаем всю структуру документа в DOM ДокументХТМЛ = ПостроительДОМ.Прочитать(ЧтениеХТМЛ);
//Получаем все элементы DIV ЭлементыСтраницы = ДокументХТМЛ.ПолучитьЭлементыПоИмени("DIV");
получаю копию страницы у себя на диске...но в ней не все товары...
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Цитата(kosalex @ 23.07.15, 12:13)
Конкретный вопрос, как средствами 1С получить все товары на этой странице
Вопрос скорее не по теме, но всё же: почему нельзя договориться с сайтом что бы он по каком-то http-запросу отдавал информацию в уже структурированном формате (xml например)?
Личные бесплатные консультации не даю, для этого есть форум!
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Цитата(sava1 @ 23.07.15, 13:26)
Нужно смотреть как формируется пост с выбранным Все.
Смотрел, ничего такого за что можно зацепиться не увидел...
Есть мысль собирать урлы с навигационных переключателей (Страница 1,2,3....), т.е. если они есть, взять с них их урлы и потом переходя по каждой навигационной ссылке парсить страницу.
Можно кто то увидел что то другое?))
Цитата(logist @ 23.07.15, 13:14)
Вопрос скорее не по теме, но всё же: почему нельзя договориться с сайтом что бы он по каком-то http-запросу отдавал информацию в уже структурированном формате (xml например)?
1. Сделать то что хотим получить от сайта в "ручном режиме". Потренировать, добиться определенного результата. 2. Делать уже в 1С-ке парсинг. Так-как понятен алгоритм взаимодействия с сайтом.
ЗЫ: Сайт может использовать там JavaScript какой-нибудь, или еще что-то. Вообщем делаем пункт 1, а после уже приступаем к п.2.
----------------------------------------------------------------------------------- Единственный, интуитивно понятный интерфейс - мамкина сиська! Всему остальному надо учиться! (с) Не знаю кто....
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2
Цитата(logist @ 23.07.15, 13:14)
Вопрос скорее не по теме, но всё же: почему нельзя договориться с сайтом что бы он по каком-то http-запросу отдавал информацию в уже структурированном формате (xml например)?
Потому что скорее всего это слив инфы с чьего-то сайта
//Генерируем имя файла на диске, в который запишется страница сайта ПреобразуемоеИмяФайла = СтрЗаменить(АдресСтраницы, "/", "_"); ПреобразуемоеИмяФайла = СтрЗаменить(ПреобразуемоеИмяФайла,":","_");
HTTPЗапрос = Новый HTTPЗапрос(АдресСтраницы); HTTPЗапрос.УстановитьТелоИзСтроки(СтрокаПараметров, КодировкаТекста.UTF8);
HTTPСоединение = Новый HTTPСоединение(АдресСайта);
Попытка Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос, ФайлСтраницы); Исключение Сообщить("Ошибка при отправке запроса: " + ОписаниеОшибки()); КонецПопытки;
Страница сохраняется, но в ней отображается только 36 товаров, а нужно все. Смотрел браузером, параметры передаются onpage:36. Что делаю не правильно?
//Генерируем имя файла на диске, в который запишется страница сайта ПреобразуемоеИмяФайла = СтрЗаменить(АдресСтраницы, "/", "_"); ПреобразуемоеИмяФайла = СтрЗаменить(ПреобразуемоеИмяФайла,":","_");
//Генерируем имя файла на диске, в который запишется страница сайта ПреобразуемоеИмяФайла = СтрЗаменить(АдресСтраницы, "/", "_"); ПреобразуемоеИмяФайла = СтрЗаменить(ПреобразуемоеИмяФайла,":","_");
// Для того, чтобы установить заголовки // POST-запроса создадим соответствие ЗаголовокHTTP = Новый Соответствие(); ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");
HTTPСоединение = Новый HTTPСоединение(АдресСайта);
Попытка Ответ = HTTPСоединение.ОтправитьДляОбработки(ХТТПЗапрос, ФайлРезультата); Исключение Сообщить("Ошибка при отправке запроса: " + ОписаниеОшибки()); КонецПопытки;
//Генерируем имя файла на диске, в который запишется страница сайта ПреобразуемоеИмяФайла = СтрЗаменить(АдресСтраницы, "/", "_"); ПреобразуемоеИмяФайла = СтрЗаменить(ПреобразуемоеИмяФайла,":","_");
// Для того, чтобы установить заголовки // POST-запроса создадим соответствие ЗаголовокHTTP = Новый Соответствие(); ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");
HTTPСоединение = Новый HTTPСоединение(АдресСайта);
Попытка Ответ = HTTPСоединение.ОтправитьДляОбработки(ХТТПЗапрос, ФайлРезультата); Исключение Сообщить("Ошибка при отправке запроса: " + ОписаниеОшибки()); КонецПопытки;
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
УРАААА!!!Вот работающий код:
ТелоЗапроса = "&onpage=10000";
//Генерируем имя файла на диске, в который запишется страница сайта ПреобразуемоеИмяФайла = СтрЗаменить(АдресСтраницы, "/", "_"); ПреобразуемоеИмяФайла = СтрЗаменить(ПреобразуемоеИмяФайла,":","_");
// Для того, чтобы установить заголовки // POST-запроса создадим соответствие ЗаголовокHTTP = Новый Соответствие(); ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");
HTTPСоединение = Новый HTTPСоединение(АдресСайта);
Попытка Ответ = HTTPСоединение.ОтправитьДляОбработки(ХТТПЗапрос, ФайлРезультата); Исключение Сообщить("Ошибка при отправке запроса: " + ОписаниеОшибки()); КонецПопытки;
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!