Запрос цены товара с сайта apteka.ru

02.09.19

Интеграция - Сайты и интернет-магазины

Пример запроса для получения цены товара/лекарства с сайта apteka.ru

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Запрос цены товара с сайта apteka.ru:
.epf 7,30Kb
1 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Приветствую. Это пример для получения цены с сайта apteka.ru (без округления)

Тестировал на 1С:Розница Аптека 2.2.12.30, платформа 8.3.13.1865. Думаю, работать будет и на других. 
 

&НаКлиенте
Процедура УзнатьЦену(Команда)
    
    Штрихкод=ПолучитьШтрихкод();
    
    ssl = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows());      
    HTTPСоединение = Новый HTTPСоединение("apteka.ru",,,,,,ssl,);      
    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Origin", "https://apteka.ru");
    Заголовки.Вставить("Accept-Language", "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7"); 
    Заголовки.Вставить("X-Requested-With", "XMLHttpRequest");
    Заголовки.Вставить("DNT", "1"); 
    Заголовки.Вставить("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36");
    Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8"); 
    HTTPЗапрос = Новый HTTPЗапрос("/", Заголовки);
    Результат = HTTPСоединение.Получить(HTTPЗапрос);
    Cookie = Результат.Заголовки.Получить("Set-Cookie");     
    Cookie = СтрЗаменить(Cookie, ";", Символы.ПС);         
    Cookie = СтрПолучитьСтроку(Cookie, 1); 
    Заголовки.Вставить("Cookie", Cookie);
    ЗапросЧасть1 = "/search/?q=";
    ЗапросЧасть2 = ШтрихКод;
    ЗапросЧасть3 = "&order=products%2Cmaterials&vendor=";
    ИтоговойЗапрос = ЗапросЧасть1 + ЗапросЧасть2 + ЗапросЧасть3;
    HTTPЗапрос = Новый HTTPЗапрос(ИтоговойЗапрос, Заголовки);     
    HTTPЗапрос.УстановитьТелоИзСтроки(ИтоговойЗапрос, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);    
    Ответ = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос);     
    Ответ = Ответ.ПолучитьТелоКакСтроку("UTF-8");
    Ошибка404 = "page-404";
    ИщемОшибку404 = Найти(Ответ, Ошибка404); 
    Если ИщемОшибку404 = 0 Тогда     
        ЧтоИщемВСтроке = "data-price=";
        Позиция = Найти(Ответ, ЧтоИщемВСтроке);
        Длина = СтрДлина(Ответ);
        Ответ = Прав(Ответ, СтрДлина(Ответ)-Позиция-11);
        Ответ = Лев(Ответ, 11);  
        RegExp = Новый COMОбъект("VBScript.RegExp");        
        RegExp.IgnoreCase = Истина; //Игнорировать регистр 
        RegExp.Global = Истина; //Поиск всех вхождений шаблона 
        RegExp.MultiLine = Истина; //Многострочный режим 
        RegExp.Pattern = "[^0-9]"; // отбор только чисел          
        Ответ=RegExp.Replace(Ответ, "");            
        Ответ = Лев(Ответ, СтрДлина(Ответ)-2);
        Если Ответ <> "" Тогда
            Ответ = Число(Ответ);
            Ответ = Формат(Ответ, "ЧЦ=15");
            Ответ = Ответ + " руб.";
        КонецЕсли;
        Сообщить(Ответ);
    Иначе Сообщить("Товар не найден");
    КонецЕсли;   
    
КонецПроцедуры

&НаСервере
Функция ПолучитьШтрихкод();
    
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ ПЕРВЫЕ 1
    |    Штрихкоды.Штрихкод КАК Штрихкод
    |ИЗ
    |    РегистрСведений.Штрихкоды КАК Штрихкоды
    |ГДЕ
    |    Штрихкоды.Владелец = &Номенклатура";
    
    Запрос.УстановитьПараметр("Номенклатура", ЭтаФорма.Номенклатура);
    
    РезультатЗапроса = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        Штрихкод = ВыборкаДетальныеЗаписи.Штрихкод;
    КонецЦикла;
    
    Возврат Штрихкод;
    
КонецФункции

 

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Сайты и интернет-магазины 1С v8.3 1С:Розница 2 Розничная и сетевая торговля (FMCG) Россия Платные (руб)

Интеграция сервиса dolyame.ru с 1С:Розница 2.3 для приема платежей в рассрочку. Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 2.3. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку. Поддерживает работу от разных юридических лиц. Работа: в составе РИБ, отдельно от РИБ, тонкий, толстый клиент, web-клиент (через интернет-браузер), поддерживается старый РМК, работа через чек ККМ.

24000 руб.

19.12.2023    10666    59    14    

54

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    22015    32    24    

25

Сайты и интернет-магазины 1С v8.3 1С:Розница 2 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Управленческий учет Платные (руб)

Склад Вашего магазина онлайн в Telegram. С картинками, ценами, описанием и характеристиками. Используйте Telegram как торговую площадку и увеличивайте продажи.

54000 руб.

10.09.2024    2990    4    5    

3

Сайты и интернет-магазины Программист Пользователь 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Россия Платные (руб)

Данный модуль предоставляет возможность выгружать заказы из 1С: Управление торговлей 11 версии в "MEASOFT" (ранее "Курьерская служба 2008").

9600 руб.

27.04.2022    12588    22    3    

13

Файловый обмен (TXT, XML, DBF), FTP Сайты и интернет-магазины 1С v8.3 1С:Управление торговлей 11 Россия Платные (руб)

Загрузка файла YML (формат Yandex Market Language(YML) — собственный стандарт Яндекса, основанный на XML) в УТ11.5 Создание дерева номенклатуры, создание карточек номенклатуры и доп реквизитов, загрузка картинок в карточку. Оптимизировано для выгрузки в Битрикс. Возможна загрузка нескольких Фид - предусмотрено разделение по площадкам

7000 руб.

01.11.2024    1372    1    1    

2

Прайсы Оптовая торговля Ценообразование, анализ цен Сайты и интернет-магазины Пользователь 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Легкая обработка для мониторинга цен практически любого сайта (парсинга), не требует специальных знаний при настройке.

6960 руб.

17.04.2017    33596    30    28    

43
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. alex_bitti 02.09.19 12:08 Сейчас в теме
спасибо, может пригодиться, коротко и понятно
2. ip0593 20 02.09.19 14:42 Сейчас в теме
3. user858803 10.09.19 18:37 Сейчас в теме
жаль что у них нет штрихкода в карточке... а так было бы нааамного удобней.
в частности такое поле есть в еаптеке), можно было бы туда обратить свой взор
4. shura_a 11.09.19 16:35 Сейчас в теме
А как в запросе поменять регион?
Сейчас выдает цены Москвы.
5. ip0593 20 11.09.19 16:37 Сейчас в теме
(4) а если в браузере регион поменять? у меня цены моего региона выходят, но уже не помню, что я дополнительно для этого делал и делал ли вообще.
6. shura_a 11.09.19 16:42 Сейчас в теме
(5) В браузере поменян. а в обработке все равно Москва
7. shura_a 12.09.19 09:13 Сейчас в теме
(5) Может у тебя цена с Москвой совпадает?
8. ip0593 20 12.09.19 09:38 Сейчас в теме
(7) нет, не совпадает, именно для моего региона
9. ip0593 20 12.09.19 09:40 Сейчас в теме
(5) с разных устройств смотрел? может дело в ip-адресе, vpn и т.д.
Для отправки сообщения требуется регистрация/авторизация