![]() |
|
как получить цены с сайта? | ☑ | ||
---|---|---|---|---|
0
ZSSSP
16.10.17
✎
13:23
|
Есть пример кода но из ответа с сайта не могу вытащить цены
WinHttp = Новый COMОбъект("MSXML2.XMLHTTP.6.0"); WinHttp.Open("GET", "http://www.autopiter.ru/goods/wht005437", 0); WinHttp.Send(); ТекстОтвета = WinHttp.ResponseText(); Подскажите что нужно сделать чтобы добраться до цен? |
|||
1
vde69
16.10.17
✎
13:25
|
цены чего?
покажи как ты добираешся до номенклатуры и я подскажу как добратся до цен |
|||
2
ZSSSP
16.10.17
✎
13:37
|
Обхожу текстответа циклом, но дело в том что даже в тексте ответа нет цен. Как их получить?
|
|||
3
Лефмихалыч
16.10.17
✎
13:49
|
А цен там и правда нет. Они, видимо, каким-то js-ом подтягиваются в DOM после загрузки страницы. Как раз против таких хитрожопых, типа ТС, которые на халяву каталог хотят уравть:
https://i.imgur.com/hS7V52T.png |
|||
4
rasta
16.10.17
✎
13:50
|
1) по WinHttp.Open("GET", "http://www.autopiter.ru/goods/wht005437",, 0)
получаегь список товаров и та есть ссылка на товар : href="/goods/wht005437/vag/id38733338 2) по WinHttp.Open("GET", "http://www.autopiter.ru/goods/wht005437/vag/id38733338",, 0); получаешь карточку товара, там уже есть <div class="upi-price"> <span>173,28</span> </div> наверно как-то так ) |
|||
5
ZSSSP
16.10.17
✎
14:24
|
только через ссылку можно достать цену? а саму ссылку получать при помощи перебора строк?
|
|||
6
ttk
16.10.17
✎
14:29
|
||||
7
Юрий Лазаренко
16.10.17
✎
14:51
|
(0) Открывать из 1С IE через OLE, программно открывать в нем нужную страницу, дожидаться загрузки, получать DOM и перебирать его. Медленно и ресурсоемко.
|
|||
8
rasta
16.10.17
✎
14:55
|
(6) а как нашел эту страничку если не секрет. на главной и в хелпе ничего такого не увидел (
|
|||
9
ttk
16.10.17
✎
14:59
|
(8)
Загружал от них что то, если залогиниться, то там где то будет в интерфейсе |
|||
10
ZSSSP
16.10.17
✎
15:06
|
http://service.autopiter.ru/price.asmx как можно это использовать в 1с ?пока не понимаю
|
|||
11
asady
16.10.17
✎
15:08
|
(10) там же написано
формируй post запрос там в примерах приведены тексты пост запросов и ответы на них |
|||
12
ZSSSP
16.10.17
✎
15:50
|
POST запросом он возвращает такой же ответ что и GET цены нет.
|
|||
13
ttk
16.10.17
✎
15:55
|
потому что цены могут быть разными, надо авторизоваться
|
|||
14
Крэкпэк
16.10.17
✎
16:29
|
(3) Что за софт на картинке ?
|
|||
15
ttk
16.10.17
✎
16:44
|
(14) на SoapUi очень похоже
|
|||
16
ZSSSP
17.10.17
✎
08:27
|
Не получается отправить post запрос на сайт подскажите в чем может быть проблема?
АдресСервера ="http://www.autopiter.ru"; АдресСтраницыАвторизации = "http://www.autopiter.ru"; АдресСтраницыРассылки = "http://www.autopiter.ru/goods/wht005437"; Логин = "hk05c6z"; Пароль = "Qwerty123"; // Убрать http-протоколы из доменного имени АдресСервера = СтрЗаменить(АдресСервера, "http://", ""); АдресСервера = СтрЗаменить(АдресСервера, "https://", ""); //АдресСервера = СтрЗаменить(АдресСервера, "/", ""); Соединение = Новый HTTPСоединение(АдресСервера); // Создать файлы запроса и получения ВремКаталог = КаталогВременныхФайлов() + "tempParser"; СоздатьКаталог(ВремКаталог); УдалитьФайлы(ВремКаталог,"*.*"); ИмяВыходногоФайла = "" + ВремКаталог + "\answer.html"; ИмяФайлаОтправки = "" + ВремКаталог + "\request.html"; // Подготовить файл для POST запроса POSTПараметры = Новый ЗаписьТекста(ИмяФайлаОтправки, КодировкаТекста.UTF8,, Истина, Символы.ПС); POSTПараметры.Записать("user_name=" + Логин + "&user_password=" + Пароль + "&action=do_enter"); POSTПараметры.Закрыть(); // Определить заголовки POST, используя алгоритм "application/x-www-form-urlencoded" POSTЗаголовки = Новый Соответствие(); POSTЗаголовки.Вставить("POST "+АдресСтраницыАвторизации+" HTTP/1.1"); POSTЗаголовки.Вставить("Host", АдресСервера); POSTЗаголовки.Вставить("Referer", "http://"+АдресСервера); POSTЗаголовки.Вставить("Connection", "keep-alive"); POSTЗаголовки.Вставить("Content-Type", "application/x-www-form-urlencoded"); // Отправляем POST запрос Попытка ОтветHTTP = Соединение.ОтправитьДляОбработки(ИмяФайлаОтправки, АдресСтраницыАвторизации, ИмяВыходногоФайла, POSTЗаголовки); Исключение Сообщить("Неудачная попытка соединения с " + АдресСервера + ": " + ОписаниеОшибки()); Возврат; КонецПопытки; // Получим ресурс на который нас перебросил сервер Если ОтветHTTP.КодСостояния = 302 Тогда АдресСтраницы = ОтветHTTP.Заголовки["Location"]; КонецЕсли; // Определить заголовки GET, с куками полученными от сервера GETЗаголовки = Новый Соответствие(); GETЗаголовки.Вставить("Cookie", ОтветHTTP.Заголовки["Set-Cookie"]); GETЗаголовки.Вставить("Connection", "keep-alive"); // Получаем страницу, указывая куки ОтветHTTP = Соединение.Получить(АдресСтраницыРассылки, ИмяВыходногоФайла, GETЗаголовки); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |