Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Как отобразить все товары на странице?          
kosalex Подменю пользователя
сообщение 23.07.15, 10:51
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Добрый день! Все тот же сайт [необходимо зарегистрироваться для просмотра ссылки], есть на этой странице счетчик количества товара на странице, как его обработать при парсинге этой странице чтобы показывались все товары?

Vofka Подменю пользователя
сообщение 23.07.15, 11:06
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

kosalex, задавайте более конкретные вопросы. В ваших темах по парсингу этого сайта никто не отвечает, потому что ваш вопрос сводится "вот код, сделайте чтоб работало". Но за спасибо никто не хочет вникать в вашу задачу и делать её за вас. Поэтому для увеличения шансов на какой-то ответ советую задавать более конкретные вопросы.

kosalex Подменю пользователя
сообщение 23.07.15, 11:13
Сообщение #3

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(Vofka @ 23.07.15, 12:06) *
kosalex, задавайте более конкретные вопросы. В ваших темах по парсингу этого сайта никто не отвечает, потому что ваш вопрос сводится "вот код, сделайте чтоб работало". Но за спасибо никто не хочет вникать в вашу задачу и делать её за вас. Поэтому для увеличения шансов на какой-то ответ советую задавать более конкретные вопросы.



Плохо что так понимаете "вот код, сделайте чтобы работало". Я привожу код для того чтобы кто то смог подсказать, может я где то не так пишу код. А не для того чтобы кто то за меня что то делал. :-)

Конкретный вопрос, как средствами 1С получить все товары на этой странице [необходимо зарегистрироваться для просмотра ссылки]? У меня получается получить список товаров ограниченный счетчиком. Другими словами что нужно сделать чтобы загрузилась полностью вся страница?

python Подменю пользователя
сообщение 23.07.15, 11:29
Сообщение #4

Говорящий
***
Группа: Пользователи
Сообщений: 83
Из: Киев
Спасибо сказали: 13 раз
Рейтинг: 0

Если я правильно понимаю, то страница формируется сервером, Вы лишь читаете результат работы его - данные со страницы.
Вы хотите прочитать данные со страницы, которых там нет, или из 1С управлять сервером, формирующим по запросу браузера страницы/фреймы?

kosalex Подменю пользователя
сообщение 23.07.15, 11:39
Сообщение #5

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(python @ 23.07.15, 12:29) *
Если я правильно понимаю, то страница формируется сервером, Вы лишь читаете результат работы его - данные со страницы.
Вы хотите прочитать данные со страницы, которых там нет, или из 1С управлять сервером, формирующим по запросу браузера страницы/фреймы?



Как я понимаю, мне нужно через что то отправить серверу запрос, чтобы он мне выдал страницу со всеми товарами. Сейчас я делаю вот так:

ЧтениеХТМЛ = Новый ЧтениеHTML; 
        ПостроительДОМ = Новый ПостроительDOM;
        
        //Генерируем имя файла на диске, в который запишется страница сайта
        ПреобразуемоеИмяФайла = СтрЗаменить(Адрес, "/", "_");
        ПреобразуемоеИмяФайла = СтрЗаменить(ПреобразуемоеИмяФайла,":","_");
        
        ИмяФайла = КаталогЗагрузкиВременныхФайлов + "\catalog\" + ПреобразуемоеИмяФайла + ".html";

        //Загружаем нужную нам страницу в каталог
        Соединение.Получить(Адрес, ИмяФайла);
                
        //Начинаем чтение нашего файла
        ЧтениеХТМЛ.ОткрытьФайл(ИмяФайла, "UTF-8");
        //Загружаем всю структуру документа в DOM
        ДокументХТМЛ = ПостроительДОМ.Прочитать(ЧтениеХТМЛ);
        
        //Получаем все элементы DIV
        ЭлементыСтраницы = ДокументХТМЛ.ПолучитьЭлементыПоИмени("DIV");


получаю копию страницы у себя на диске...но в ней не все товары...

logist Подменю пользователя
сообщение 23.07.15, 12:14
Сообщение #6

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(kosalex @ 23.07.15, 12:13) *
Конкретный вопрос, как средствами 1С получить все товары на этой странице

Вопрос скорее не по теме, но всё же: почему нельзя договориться с сайтом что бы он по каком-то http-запросу отдавал информацию в уже структурированном формате (xml например)?


Signature
Личные бесплатные консультации не даю, для этого есть форум!

sava1 Подменю пользователя
сообщение 23.07.15, 12:26
Сообщение #7

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

Цитата(kosalex @ 23.07.15, 12:39) *
получаю копию страницы у себя на диске...но в ней не все товары...

Нужно смотреть как формируется пост с выбранным Все.

kosalex Подменю пользователя
сообщение 23.07.15, 13:13
Сообщение #8

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(sava1 @ 23.07.15, 13:26) *
Нужно смотреть как формируется пост с выбранным Все.

Смотрел, ничего такого за что можно зацепиться не увидел...

Есть мысль собирать урлы с навигационных переключателей (Страница 1,2,3....), т.е. если они есть, взять с них их урлы и потом переходя по каждой навигационной ссылке парсить страницу.

Можно кто то увидел что то другое?))

Цитата(logist @ 23.07.15, 13:14) *
Вопрос скорее не по теме, но всё же: почему нельзя договориться с сайтом что бы он по каком-то http-запросу отдавал информацию в уже структурированном формате (xml например)?


Можно попробовать договориться)

DartRomanius Подменю пользователя
сообщение 23.07.15, 13:45
Сообщение #9

Ветеран
Иконка группы
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0

1. Сделать то что хотим получить от сайта в "ручном режиме". Потренировать, добиться определенного результата.
2. Делать уже в 1С-ке парсинг. Так-как понятен алгоритм взаимодействия с сайтом.

ЗЫ: Сайт может использовать там JavaScript какой-нибудь, или еще что-то. Вообщем делаем пункт 1, а после уже приступаем к п.2. smile.gif



Signature
-----------------------------------------------------------------------------------
Единственный, интуитивно понятный интерфейс - мамкина сиська!
Всему остальному надо учиться! (с) Не знаю кто....

Vofka Подменю пользователя
сообщение 23.07.15, 13:48
Сообщение #10

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

Цитата(logist @ 23.07.15, 13:14) *
Вопрос скорее не по теме, но всё же: почему нельзя договориться с сайтом что бы он по каком-то http-запросу отдавал информацию в уже структурированном формате (xml например)?

Потому что скорее всего это слив инфы с чьего-то сайта smile.gif

sava1 Подменю пользователя
сообщение 23.07.15, 13:58
Сообщение #11

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

Мож-быть, скачать в офф-лайн?

kosalex Подменю пользователя
сообщение 23.07.15, 14:36
Сообщение #12

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(sava1 @ 23.07.15, 14:58) *
Мож-быть, скачать в офф-лайн?


весь сайт?))

Цитата(Vofka @ 23.07.15, 14:48) *
Потому что скорее всего это слив инфы с чьего-то сайта smile.gif



Да, это слив инфы, но хозяин сайта не запрещает этого делать :-) А наоборот дает добро и не маркирует картинки.

Написал им, может получиться без тупого парсинга)) а чисто чтение файла)

logist Подменю пользователя
сообщение 23.07.15, 18:14
Сообщение #13

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(kosalex @ 23.07.15, 15:36) *
весь сайт?))

Знаете, 15 лет назад были специальные проги по скачиванию сайтов, это было модно))


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kosalex Подменю пользователя
сообщение 24.07.15, 7:24
Сообщение #14

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(logist @ 23.07.15, 19:14) *
Знаете, 15 лет назад были специальные проги по скачиванию сайтов, это было модно))


))мода имеет такую особенность - она повторяется))

kosalex Подменю пользователя
сообщение 12.08.15, 8:58
Сообщение #15

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Доброго времени суток! Все пытаюсь получить страницу со ВСЕМИ товарами.

Отправляю на сервер вот такой запрос:

СтрокаПараметров =  "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:36.
Что делаю не правильно?

Petre Подменю пользователя
сообщение 12.08.15, 9:22
Сообщение #16

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Передавайте больше 36.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

kosalex Подменю пользователя
сообщение 12.08.15, 9:45
Сообщение #17

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(Petre @ 12.08.15, 10:22) *
Передавайте больше 36.



передаю и меньше и больше, все равно сохраняется только с 36 ((

Пробую и так, результат один, только 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);
Исключение
    Сообщить("Ошибка при отправке запроса: " + ОписаниеОшибки());
КонецПопытки;

kosalex Подменю пользователя
сообщение 12.08.15, 11:20
Сообщение #18

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Вот какой запрос отсылается на сервер:

POST [необходимо зарегистрироваться для просмотра ссылки]
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Соединение.ОтправитьДляОбработки(ХТТПЗапрос, ФайлРезультата);
Исключение
    Сообщить("Ошибка при отправке запроса: " + ОписаниеОшибки());
КонецПопытки;

logist Подменю пользователя
сообщение 12.08.15, 11:46
Сообщение #19

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Строка адреса для Post попробуйте сделать так: _http://mprestige.com.ua/dorozhnye-sumki-c-316.html?onpage=1000


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kosalex Подменю пользователя
сообщение 12.08.15, 11:48
Сообщение #20

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

УРАААА!!!Вот работающий код:
ТелоЗапроса = "&onpage=10000";

//Генерируем имя файла на диске, в который запишется страница сайта
ПреобразуемоеИмяФайла = СтрЗаменить(АдресСтраницы, "/", "_");
ПреобразуемоеИмяФайла = СтрЗаменить(ПреобразуемоеИмяФайла,":","_");

ФайлРезультата =  КаталогЗагрузкиВременныхФайлов + "\catalog\dorognie\" + ПреобразуемоеИмяФайла + ".html";

// Для того, чтобы установить заголовки
// POST-запроса создадим соответствие
ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");

ХТТПЗапрос = Новый HTTPЗапрос;
ХТТПЗапрос.УстановитьТелоИзСтроки(ТелоЗапроса);
ХТТПЗапрос.Заголовки = ЗаголовокHTTP;
ХТТПЗапрос.АдресРесурса = АдресСтраницы;


HTTPСоединение = Новый HTTPСоединение(АдресСайта);

Попытка
    Ответ = HTTPСоединение.ОтправитьДляОбработки(ХТТПЗапрос, ФайлРезультата);
Исключение
    Сообщить("Ошибка при отправке запроса: " + ОписаниеОшибки());
КонецПопытки;


Проблема была в этом значке "&".

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 20.04.24, 0:30
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!