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

02.09.19

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

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

Скачать исходный код

Наименование Файл Версия Размер
Запрос цены товара с сайта apteka.ru:
.epf 7,30Kb
1
.epf 7,30Kb 1 Скачать

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

 

См. также

API-интеграция 1С с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress для УТ11, КА2, ERP2, УНФ, БП3, Розница, УТ10, УПП1.3

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

Модуль для интеграции с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress. При помощи расширения поддерживаются следующие методы: обмен остатками товаров, обмен ценами, обработка заказов, печать стикеров, загрузка отчетов комиссионеров по API (в том числе Я.Маркет). Подходит для конфигураций Беларуси. Поддержка искусственного интелекта GigaChat

59990 руб.

05.09.2023    8459    125    74    

82

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

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

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

36000 руб.

03.08.2020    15955    13    18    

13

Оплата покупок "Долями" в 1С:Розница 2.3 (для работы с сервисом dolyame.ru)

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

Готовое интеграционное решение для оплаты покупок Долями в 1C:Розница 2.3. Реализовано в виде расширения. Интеграция сервиса dolyame.ru для приема платежей в рассрочку.

18000 руб.

19.12.2023    1614    14    3    

11

Обмен данными с сайтом. БП 3.0

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

Обмен данными с сайтом на платформе 1С:Битрикс (и подобными) для 1С: Бухгалтерия предприятия 3.0.

12000 руб.

18.03.2019    31557    112    100    

64

Универсальный парсер интернет-магазинов

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

С того времени, как я начал парсить сайты, прошло много лет. За это время я спарсил более 100 сайтов и записал эти товары в 1С. В итоге на свет появился универсальный парсер, который поможет Вам спарсить интернет-магазин и при этом не написать ни строчки кода.

9600 руб.

19.10.2018    52256    220    101    

112

Sync1C: Синхронизация 1С и OpenCart

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

Внешняя обработка для обмена данными с интернет-магазином OpenCart. Позволяет быстро наполнить магазин товарами, затем обновлять цены и добавлять новые товары. Далее можно средствами OpenCart настраивать и дополнять карточки товаров как надо для магазина, при этом связь товаров с 1С не теряется.

3840 руб.

30.03.2018    43790    81    137    

85
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. alex_bitti 139 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 и т.д.
Оставьте свое сообщение