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

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

 Страниц (6): [1] 2 3 4 5 6 »   

> Описание: Отправка и получение ответа на сайты по HTTPS, HTTP протоколу
Kibor
Отправлено: 23 Сентября, 2018 - 16:14:14
Post Id



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


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




sendgetweb предназначен для отправки по протоколам HTTPS и HTTP запросов на сайт и получение ответа.
Получает чистый код страницы без заголовка.
Подходит для парсинга сайтов.

Доступно 2 варианта функции sendgetweb. Коротая и длинная.
Короткая не имеет параметров отправки заголовка, POST запроса и длины POST запроса.
Длинная позволяет формировать заголовок, POST запрос и длину POST запроса.

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

Еще вариант более гибкий Использование API WinInet, подключая нужные функции

Пример как скачать exe файл, сохранить его и запустить. Ссылка
Ответ можно принимать в массив char или в string
Функция возвращает количество принятых байт или -1 при ошибке.
Если указан малый массив char для приема, запишется количество символов равное размеру массива char -1. Последний элемент массива запишется нулем, поэтому надо выделять размер массива хотя бы на 1 больше чем ожидаемое количество принимаемых символов.

Если ответ приходит в формате UTF-8 и присутствуют русские символы в виде кракозябр, необходимо преобразовать формат в ANSI с помощью функции utf8toansi

==========

Использование прокси:
Прокси указывается не обязательным первым параметром string

Зайти на форум kibor-bot.com через прокси сервер IP 88.199.21.76 порт 80
На kibor-bot.com будет IP прокси сервера 88.199.21.76
 Цитата:
sendgetweb("88.199.21.76:80", #T[2], "", "GET", "https:/^/kibor-bot.com", "forum")


Не использовать прокси
 Цитата:
sendgetweb(#T[2], "", "GET", "https:/^/kibor-bot.com", "forum")



Так же само с длинным вариантом sendgetweb

Зайти и авторизоваться через прокси
 Цитата:
sendgetweb("88.199.21.76:80", #C[0], "My bot", "POST", "https:/^/kibor-bot.com", "forum/loginout.php", Header, #POSTData[0], size(#POSTData[0]))


Зайти под своим IP
CODE:
sendgetweb(#C[0], "My bot", "POST", "https:/^/kibor-bot.com", "forum/loginout.php", Header, #POSTData[0], size(#POSTData[0]))


==========

Примеры короткой

CODE:
string S;
if (sendgetweb(#S, "My bot", "GET", "https:/^/kibor-bot.com", "forum")>0)
{
messagebox (S);
}


CODE:
char C[100000];
if (sendgetweb(#C[0], "My bot", "GET", "https:/"+"/www.google.com.ua", "search?source=hp&q=кибор")>0)
{
messagebox (format(#C[0]));
}

CODE:
string S;
if (sendgetweb(#S, "Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0; .NET CLR 1.0.2914)", "GET", "https:/"+"/www.google.com.ua", "search?source=hp&q=кибор")>0)
{
messagebox (S);
}


CODE:
string T[5];
int k=sendgetweb(#T[2], "", "GET", "http:/"+"/kibor-bot.com", "");
if (k>0)
{
messagebox (format(k)+" "+T[2]);
}



Первый параметр - указатель на массив char или string в который получим ответ
Второй - строка имени программы которая посылает запрос. Можно представиться к примеру браузером ("Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0; .NET CLR 1.0.2914)") или оставить пустой.
Третий - тип запроса. Большими буквами.
Четвертый - Домен с протоколом HTTPS или HTTP.
Пятый - Тело запроса.

Пример указания последнего параметра времени в милисекундах, после которого функция завершает работу при нерабочем подключение.
 Цитата:
string S;
if (sendgetweb(#S, "Mozilla/4.0 (compatible; MSIE 6.0b; Windows NT 5.0; .NET CLR 1.0.2914)", "GET", "https:/"+"/www.google.com.ua", "search?source=hp&q=кибор", 3000)>0)
{
messagebox (S);
}


Узнать свой IP с сайта https: // 2ip . ua
CODE:
char C[100000];
if (sendgetweb(#C[0], "", "GET", "https:/"+"/2ip.ua", "")>0)
{
int nom, siz;
if (findtext(#C[0], #nom, #siz, "</div><div class="+formatic(34)+"ip"+formatic(34)+">" & "<span class")>0)
{
messagebox("IP "+format(#C[nom], siz));
}
}


Примеры длинной

CODE:
sendgetweb(#C[0], "My bot", "POST", "https:/"+"/kibor-bot.com", "forum/loginout.php", Header, #POSTData[0], size(#POSTData[0]))


Header - Заголовок в string
#POSTData[0] - указатель на массив char, с котором находится POST запрос
size(#POSTData[0]) - Целое число. Длина POST запроса. При наличие нулей надо указывать числом.

Пример авторизации на сайте(для просмотра ссылки Вам необходимо авторизоваться) В коде страницы вы увидите текст Здравствуйте Test_Kibor
И внизу форума на главной странице увидите посетителя Test_Kibor
CODE:
string Header="Content-Type: application/x-www-form-urlencoded";

char POSTData[1000];
strcpy(#POSTData[0], "action=login&imembername=Test_Kibor&ipassword=Test_Kibor_qwert&submit=%C2%F5%EE%E4");//Пост запрос


char C[100000];
if (sendgetweb(#C[0], "My bot", "POST", "https:/"+"/kibor-bot.com", "forum/loginout.php", Header, #POSTData[0], size(#POSTData[0]))>0)
{
messagebox (format(#C[0]));

if (fopen ("c:\5.txt", "w")!=0)
{//если открылся
fwrite(format(#C[0]));
fclose();//закрываем файл
}
start("c:\5.txt");
}
 
 Top
Skycrew
Отправлено: 26 Сентября, 2018 - 04:50:10
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 123
Дата рег-ции: Июль 2014  
Репутация: 0




Это просто более удобное оформление функционала sendhtml() recvhtml() или есть принципиальные отличия?
 
 Top
Kibor
Отправлено: 26 Сентября, 2018 - 04:54:49
Post Id



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


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




Есть. Большое.
Оно работает с HTTPS
 
 Top
Skycrew
Отправлено: 27 Сентября, 2018 - 03:08:33
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 123
Дата рег-ции: Июль 2014  
Репутация: 0




 Kibor пишет:
Есть. Большое.
Оно работает с HTTPS


Ок. я понял. Да вроде были проблемы с HTTPS. Спасибо!
 
 Top
Dantes3000
Отправлено: 29 Октября, 2018 - 15:34:14
Post Id



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


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




Отправка ботом текстового смс на телефон
 
 Top
Adomb
Отправлено: 01 Февраля, 2019 - 10:54:32
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 185
Дата рег-ции: Июль 2015  
Репутация: 1




CODE:
string T[5];
int k=sendgetweb(#T[2], "", "GET", "http:/"+"/kibor-bot.com", "");
if (k>0)
{
messagebox (format(k)+" "+T[2]);
}

Запускаю - ничего не выводит. Так и должно быть?
 
 Top
Kibor
Отправлено: 01 Февраля, 2019 - 11:05:31
Post Id



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


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




 Adomb пишет:
Запускаю - ничего не выводит. Так и должно быть?

Нет. Чему равно k?
 
 Top
Adomb
Отправлено: 01 Февраля, 2019 - 11:19:38
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 185
Дата рег-ции: Июль 2015  
Репутация: 1




Нет. Чему равно k?[/quote]
k равно -1
Ошибка, значит. Но интернет норм. Кибор нормально запускается. Антивирусов, файерволов нет (кроме встроенного виндового).

Ха. Кибор сутки запущен был. Перезапустил - заработало.
---------------------------------------------------------------------
http://r99946ez.beget.tech или http://r99946ez.beget.tech/index.html
Вот ссылка.
Делаю:

CODE:
string T[5];
int k=sendgetweb(#T[2], "", "GET", "http:/"+"/r99946ez.beget.tech", "");
if (k>0)
{
messagebox (format(k)+" "+T[2]);
}

Выводит:
CODE:
179 <html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>
<hr><center>nginx-reuseport/1.13.4</center>
</body>
</html>

Как мне получить текст со страницы?

(Отредактировано автором: 01 Февраля, 2019 - 11:33:36)

 
 Top
Kibor
Отправлено: 01 Февраля, 2019 - 16:56:55
Post Id



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


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




Это и есть текст того что передает.
Передает ошибку.
Что за ошибка можно почитать в интернете по запросу
403 Forbidden
Наверно стоит создать страницу с расширением html или php и ее открывать?
 
 Top
Dantes3000
Отправлено: 23 Марта, 2019 - 03:09:32
Post Id



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


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




(для просмотра ссылки Вам необходимо авторизоваться)
как мне от сюда получить значение "Последняя цена"? будет быстрее сканировать текст или через sendgetweb получать+парсить?
 
 Top
Страниц (6): [1] 2 3 4 5 6 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


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




Powered by