Автоматизация и боты


 Помощь      Поиск      Пользователи

 

Главная     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Без описания
Kibor
Отправлено: 23 Мая, 2020 - 02:40:38
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 5948
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 215
Карма 50




На данный момент многие сайты дают возможность взаимодействовать с ними через Api.
Наиболее частый формат взаимодействия является JSON.

В разработке инструмент, который позволит создавать боты общающиеся с сайтами через Api разработчиков сайтов.

На данный момент реализуется парсер JSON формата для возможности получать и выделять необходимую информацию с ответа.

У кого есть желание, тестируется не описанная на данный момент функция parserjson.

Код для тестирования:

CODE:
string исходник="";
string Tt;

if (fopen ("C:\json.txt", "r")!=0)//открываем файл для чтения "r"
{
while (freadline(Tt))исходник=исходник+Tt;
fclose();
}


messagebox (исходник);
messagebox (parserjson(Rez_Json, исходник));


В файле json.txt должен находиться формат JSON.

Пример:
CODE:
{
"firstName": "Иван",
"lastName": "Иванов",
"address":
{
"streetAddress": "Московское ш., 101, кв.101",
"city": "Ленинград",
"postalCode": 101101
},
"phoneNumbers":
[
"812 123-1234",
"916 123-4567",
{
"Info":"No",
"MobPhone":"Yes"
}
]
}


При запуске вышеуказанного кода с таким файлом, Кибор будет выводить распарсенную информацию.
Вывод состоит из пары Ключ = Значение

Доступ к элементам JSON реализован похожим образом как это сделано в JavaScript.

Пример вывода:

lastName ключ. Иванов значение этого ключа
 Цитата:
lastName = Иванов


address.city состоит из двух ключей. address и элемента объекта city
 Цитата:
address.city = Ленинград



phoneNumbers это массив. phoneNumbers[1] указывает на второй элемент массива.
 Цитата:
phoneNumbers[1]=916 123-4567


phoneNumbers[2].Info указывает на третий элемент массива phoneNumbers, в состав которого входит объект. По элементу объекта Info мы узнаем значение.
 Цитата:
phoneNumbers[2].Info = No



Пример сложного формата:

products[1].options.15[0] = 47


 Цитата:
{
"user_id" : 10,
"session_id" : "2c2l3h4ii271aojentejtdcmh3",
"products":
[

{
"product_id" : 15,
"options" :
{
"15" : [45, 47],
"18" : 52
},
"quantity" : 1,
"price" : 1500
},

{
"product_id" : 16,
"options" :
{
"15" : [47,48],
"18" : 51
},
"quantity" : 2,
"price" : 1000
}

]
}



data[0].images[1].url =(для просмотра ссылки Вам необходимо авторизоваться)
data[0].attributes[1].value = 2015

 Цитата:
{
"data": [
{
"id": 123,
"status": "active",
"url": "https://www.olx.ua/oferta/url.html",
"created_at": "2018-02-02 09:35:16",
"activated_at": "2018-02-02 09:32:52",
"valid_to": "2018-03-04 09:32:52",
"title": "This is title",
"description": "This is description",
"category_id": 123,
"advertiser_type": "private",
"external_id": 12345,
"external_url": "http://myshop.com/advert/123",
"contact": {
"name": "John",
"phone": 123123123,
"location": {
"city_id": 1,
"district_id": null,
"latitude": 53.123,
"longitude": 17.123
}
},
"images": [
{
"url": "https://www.olx.ua/advert-picture-1.jpg"
},
{
"url": "https://www.olx.ua/advert-picture-2.jpg"
}
],
"price": {
"value": 123,
"currency": "PLN",
"negotiable": false,
"trade": false
},
"salary": null,
"attributes": [
{
"code": "model",
"value": "cts",
"values": null
},
{
"code": "year",
"value": 2015,
"values": null
}
],
"courier": null
}
]
}


В случае успеха функция по очереди вернет все ключи и значения. Возврат функции 1.

Проверить валидность записи JSON можно тут

В случае ошибки выкладывайте JSON и в каком месте неверно выводит.
 
 Top
Dantes3000
Отправлено: 23 Мая, 2020 - 14:46:22
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1186
Дата рег-ции: Июнь 2016  
Репутация: 52
Карма 16






В самом конце ошибка.

json (Отобразить)

(Отредактировано автором: 23 Мая, 2020 - 14:48:35)

 
 Top
Kibor
Отправлено: 23 Мая, 2020 - 14:50:48
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 5948
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 215
Карма 50




 Dantes3000 пишет:
В самом конце ошибка.

Функция возвращает число, а не текст.
Запускайте код как есть. Сообщения выводятся внутри Кибор. Это тест.
(Добавление)
В формате ошибка

 Цитата:
"id": 1
"first_name": "sd",


После 1 нет запятой.
Проверяйте на валидность JSON
 
 Top
Dantes3000
Отправлено: 23 Мая, 2020 - 14:56:45
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1186
Дата рег-ции: Июнь 2016  
Репутация: 52
Карма 16




 Kibor пишет:
После 1 нет запятой.


я поправил. это я уже на форуме редактировал.
(Добавление)
В работе с массивами будет очень полезно адаптировать в кибор такой код: message.photo[-1].file_id чтобы легко получать последний элемент массива
 
 Top
Kibor
Отправлено: 23 Мая, 2020 - 15:03:37
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 5948
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 215
Карма 50




Описывайте идеи. В данный момент парсер тестируется на работоспособность. В дальнейшем будут добавляться нужные удобные функции.
 
 Top
Kutuz_off
Отправлено: 23 Мая, 2020 - 22:35:08
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 41
Дата рег-ции: Окт. 2016  
Репутация: 0
Карма 0




Хорошо бы потом пример применения на простых браузерках, использующих этот метод.
 
 Top
Kibor
Отправлено: 24 Мая, 2020 - 11:18:35
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 5948
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 215
Карма 50




Это используют доски объявлений, букмекерские конторы и тд.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Тестирование Кибор »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by