|
https://clck.ru/ помогите получить ссылку | ☑ | ||
---|---|---|---|---|
0
Tarlich
21.08.23
✎
16:23
|
да вроде и инструкция есть :
https://clck.ru/ У сервиса есть REST-образный интерфейс, позволяющий автоматизировать работу. Для того, чтобы им воспользоваться, достаточно передать переменную url в POST или GET запросе по адресу https://clck.ru/-- Пример: >>> import requests >>> endpoint = 'https://clck.ru/--' >>> url = ('https://ya.ru', '?utm_source=sender') >>> response = requests.get( endpoint, params = {'url': url} ) >>> response.text 'https://clck.ru/344HLX' ронимаю что соединение , запрос ну туплю ...... помогите -)) |
|||
1
Garykom
21.08.23
✎
16:26
|
покажи что уже наваял с Новый HTTPСоединение
|
|||
2
Tarlich
21.08.23
✎
16:29
|
// Подключаемся к сайту.
// Соединение = Новый HTTPСоединение("https://clck.ru/"); // // // Получаем текст корневой страницы через GET-запрос. // Запрос = Новый HTTPЗапрос("/", ДлиннаяСслока); // // Если бы нужна была другая страница, мы бы указали, // // например, "/about" или "/news". // // Результат = Соединение.Получить(Запрос); Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/"+ДлиннаяСслока); Результат = Соединение.Получить(Запрос); Сообщить(Результат.КодСостояния); Сообщить(Результат.ПолучитьТелоКакСтроку()); |
|||
3
Tarlich
21.08.23
✎
16:31
|
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="manifest" href="https://yastatic.net/s3/clicker/1.15.0/manifest.json"/><link rel="icon" href="https://yastatic.net/s3/clicker/_/favicon.ico" type="image/x-icon" sizes="16x16"/><link rel="preload" href="//yastatic.net/islands/_/PyVcRbwHetz0gOVWLonWH7Od8zM.woff2" as="font" type="font/woff2" crossorigin/><link rel="preload" href="//yastatic.net/islands/_/7_GKBdKFbUPzKlghJRv55xgz0FQ.woff2" as="font" type="font/woff2" crossorigin/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="description" content="Простой способ сокращать ссылки и делиться ими"/><title>Яндекс Кликер — Сокращение ссылок</title><script defer="defer" src="https://yastatic.net/s3/clicker/_/error-pages/runtime.ru.js"></script><script defer="defer" src="https://yastatic.net/s3/clicker/_/error-pages/critical-css.ru.js"></script><script defer="defer" src="https://yastatic.net/s3/clicker/_/error-pages/4.ru.js"></script><script defer="defer" src="https://yastatic.net/s3/clicker/_/error-pages/579.ru.js"></script><script defer="defer" src="https://yastatic.net/s3/clicker/_/error-pages/not-found-error-page.ru.js"></script><link href="https://yastatic.net/s3/clicker/_/error-pages/critical-css.css" rel="stylesheet"/><link href="https://yastatic.net/s3/clicker/_/error-pages/not-found-error-page.css" rel="stylesheet"/></head><body><noscript>Для работы сервиса необходимо включить JavaScript в настройках браузера</noscript><div id="root"></div></body></html>
|
|||
4
Garykom
21.08.23
✎
16:36
|
(2)+ Запрос.Заголовки.Вставить("url", адрес)
|
|||
5
Tarlich
21.08.23
✎
16:37
|
Запрос.Заголовки.Вставить("url", ДлиннаяСслока)
|
|||
6
Garykom
21.08.23
✎
16:38
|
(5) проверил что точно заголовки а не параметры внутри тела?
|
|||
7
Tarlich
21.08.23
✎
16:41
|
Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("?utm_source=sender"); Запрос.Заголовки.Вставить("url", ДлиннаяСслока); Результат = Соединение.Получить(Запрос); Сообщить(Результат.ПолучитьТелоКакСтроку()); |
|||
8
MMB
21.08.23
✎
16:41
|
Если напишешь так (вместо "/" - "/?url=") То в Результат.ПолучитьТелоКакСтроку() искомая ссылка будет присутствовать, осталось ее оттуда достать
ДлиннаяСтрока = "https://clck.ru/ помогите получить ссылку Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/?url="+ДлиннаяСтрока); Результат = Соединение.Получить(Запрос); Сообщить(Результат.КодСостояния); Сообщить(Результат.ПолучитьТелоКакСтроку()); ... "shortenedUrl":"https://clck.ru/35PT3A" ... |
|||
9
Tarlich
21.08.23
✎
16:48
|
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="manifest" href="https://yastatic.net/s3/clicker/1.15.0/manifest.json"/><link rel="icon" href="https://yastatic.net/s3/clicker/_/favicon.ico" type="image/x-icon" sizes="16x16"/><link rel="preload" href="//yastatic.net/islands/_/PyVcRbwHetz0gOVWLonWH7Od8zM.woff2" as="font" type="font/woff2" crossorigin/><link rel="preload" href="//yastatic.net/islands/_/7_GKBdKFbUPzKlghJRv55xgz0FQ.woff2" as="font" type="font/woff2" crossorigin/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="description" content="Простой способ сокращать ссылки и делиться ими"/><title>Яндекс Кликер — Сокращение ссылок</title><script defer="defer" src="https://yastatic.net/s3/clicker/1.15.0/runtime.ru.js"></script><script defer="defer" src="https://yastatic.net/s3/clicker/1.15.0/critical-css.ru.js"></script><script defer="defer" src="https://yastatic.net/s3/clicker/1.15.0/339.ru.js"></script><script defer="defer" src="https://yastatic.net/s3/clicker/1.15.0/main.ru.js"></script><link href="https://yastatic.net/s3/clicker/1.15.0/critical-css.css" rel="stylesheet"/><link href="https://yastatic.net/s3/clicker/1.15.0/main.css" rel="stylesheet"/><script nonce="6Gy0/8OP2JpSinotKGIjGQ==">
window.__bootstrapData = {"MetrikaCounter":{"items":{"696b7121-5ef9-ff57-56d9-f0fa8ea20566":{"disabled":false,"isWebvisorEnabled":false,"id":1173931}},"uniqKeyByIds":{},"aliases":{"single":"696b7121-5ef9-ff57-56d9-f0fa8ea20566"},"lists":{}},"ShortenedUrl":{"items":{"7a03f6b3-08d0-7b03-e3ff-0926a42d2339":{"originalUrl":"https://q.mc-daniel.ru/7e840201-3d8c-11ee-863a-74563c6bc6ca","shortenedUrl":"https://clck.ru/35McTr"}},"uniqKeyByIds":{},"aliases":{"single":"7a03f6b3-08d0-7b03-e3ff-0926a42d2339"},"lists":{}},"ServiceEntity":{"items":{"0631a666-4ee2-fbda-601c-06411e310938":{"type":"clck"}},"uniqKeyByIds":{},"aliases":{"single":"0631a666-4ee2-fbda-601c-06411e310938"},"lists":{}},"ApplicationParametersEntity":{"items":{"8db42fa1-e6cc-f1c7-7300-bb8ebd5d3862":{"isMobile":false}},"uniqKeyByIds":{},"aliases":{"single":"8db42fa1-e6cc-f1c7-7300-bb8ebd5d3862"},"lists":{}}} </script> </head><body><div> <script type="text/javascript" nonce="6Gy0/8OP2JpSinotKGIjGQ=="> (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; var z = null;m[i].l=1*new Date(); for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag_beta.js", "ym"); ym(1173931, "init", {clickmap:true,trackLinks:true,accurateTrackBounce:true}); </script> <noscript> <div><img src="https://mc.yandex.ru/watch/1173931" style="position:absolute; left:-9999px;" alt="" /></div> </noscript> </div><noscript>Для работы сервиса необходимо включить JavaScript в настройках браузера</noscript><div id="root"><div class="screen app"><div class="screen__main"><div class="screen__body screen__body_no-left-sidebar"><div class="screen__content-wrapper"><div class="screen__content"><div class="main-screen"><div class="main-screen__container"><div class="app-logo"><a href="https://ya.ru/" class="link app-logo__icon" target="_blank"><span class="link__text"><svg width="48" fill="none" height="48" viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#clip0_953_9187)"><mask id="mask0_953_9187" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="48" height="48"><circle cx="24" cy="24" r="24" fill="white"></circle></mask><g mask="url(#mask0_953_9187)"><rect width="48" height="48" fill="#FC3F1D"></rect><path d="M27.5389 13.4409H25.11C20.9461 13.4409 18.8642 15.5228 18.8642 18.6457C18.8642 22.1156 20.2522 23.8505 23.375 25.9325L25.804 27.6674L18.8642 38.424H13.3124L19.9052 28.7084C16.0883 25.9325 14.0064 23.5035 14.0064 18.9927C14.0064 13.4409 17.8232 9.62402 25.11 9.62402H32.3967V38.424H27.5389V13.4409Z" fill="white"></path></g></g><defs><clipPath id="clip0_953_9187"><rect width="48" height="48" fill="white"></rect></clipPath></defs></svg></span></a><h1 class="app-logo__text">Кликер</h1></div><span class="main-screen__text">Помогите клиентам быстро найти вашу страницу в интернете. Благодаря короткой ссылке клиентам не придётся видеть длинные url-адреса, занимающие много места.</span><div class="main-screen__shortener-container"><div class="shortener"><div class="shortener__url-input-container"><div class="text-input shortener__url-input text-input_view_contrast text-input_size_s56"><span class="text-input__content"><input class="text-input__control" placeholder="Введите ссылку, которую нужно сократить" type="text" value="https://q.mc-daniel.ru/7e840201-3d8c-11ee-863a-74563c6bc6ca"/><span class="text-input__box"></span></span></div><button class="button button_width_auto button_size_s56 button_view_primary button_mode_text" disabled=""><div class="button__shape"><div class="button__content"><span title="Сократить" class="button__text">Сократить</span></div></div></button></div></div></div></div></div></div></div><div class="screen__footer"><div class="app-footer"><div class="footer"><div class="footer__links-container"><div class="footer__link"><a href="https://yandex.ru/legal/clck_termsofuse/" class="link link_view_shade link_size_s14" target="_blank"><span class="link__text">Правила сервиса</span></a></div><div class="footer__link"><a class="link link_view_shade link_size_s14"><span class="link__text">API</span></a></div><div class="footer__link"><a href="https://qr.yandex.ru" class="link link_view_shade link_size_s14" target="_blank"><span class="link__text">QR-Генератор</span></a></div></div><div class="footer__right-content"><div class="footer__copyright"><span class="copyright">© <!-- -->2010–2023<!-- --> <!-- -->ООО «<a href="https://ya.ru" class="link link_view_shade"><span class="link__text">ЯНДЕКС</span></a>»</span></div></div></div></div></div></div></div><div id="screen-fixed-popup" class="screen__fixed-popup"></div></div></div></body></html> |
|||
10
Tarlich
21.08.23
✎
16:51
|
(8) осталось узнать как получить "shortenedUrl" ....
|
|||
11
MMB
21.08.23
✎
17:00
|
попробуй так например
ИтоговаяСсылка = Лев(Сред(СтрокаОтвет, СтрНайти(СтрокаОтвет, """shortenedUrl"":""") + 16), СтрНайти(Сред(СтрокаОтвет, СтрНайти(СтрокаОтвет, """shortenedUrl"":""") + 16), """") - 1); |
|||
12
Tarlich
21.08.23
✎
17:03
|
Результат.Заголовки.Получить("shortenedUrl") = Неопределено
|
|||
13
Tarlich
21.08.23
✎
17:06
|
Спасибо добрые люди !
надеюсь и я ВАМ помогу -)) |
|||
14
MMB
21.08.23
✎
17:11
|
Функция ПолучитьСокращеннуюСсылку(ДлиннаяСсылка)
Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/?url="+ДлиннаяСсылка); Результат = Соединение.Получить(Запрос); Если Результат.КодСостояния = 200 Тогда СтрокаОтвет = Результат.ПолучитьТелоКакСтроку(); ИтоговаяСсылка = Лев(Сред(СтрокаОтвет, СтрНайти(СтрокаОтвет, """shortenedUrl"":""") + 16), СтрНайти(Сред(СтрокаОтвет, СтрНайти(СтрокаОтвет, """shortenedUrl"":""") + 16), """") - 1); Возврат ИтоговаяСсылка; Иначе Возврат ""; КонецЕсли; КонецФункции |
|||
15
Garykom
21.08.23
✎
17:13
|
(14) хаха
ты не забыл про urlencode ? |
|||
16
Garykom
21.08.23
✎
17:14
|
(15)+ для get запросов в его url
лучше все же в тело засунуть |
|||
17
MMB
21.08.23
✎
17:21
|
(15) Забыл. Ну или не знал. Но видимо в яндексе это предусмотрели и работает и так. Можешь показать пример ссылки на которой этот код не отработает? Просто интересно.
|
|||
18
Garykom
21.08.23
✎
17:22
|
Запрос.УстановитьТелоИзСтроки("url="+ДлиннаяСсылка, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);
Результат = Соединение.ОтправитьДляОбработки(Запрос); |
|||
19
Garykom
21.08.23
✎
17:24
|
||||
20
Garykom
21.08.23
✎
17:25
|
>1с.онлайн ПРЕМИУМ РЕКОМЕНДУЕМ КИРИЛЛИЦА 207490руб. В корзину
мдя ценник |
|||
21
MMB
21.08.23
✎
17:29
|
(19) У меня мой код с этой ссылкой отработал штатно и выдал ту же сокращенную ссылку как в браузере
|
|||
22
MMB
21.08.23
✎
17:31
|
(18) Попробовал вот так сделать
Функция ПолучитьСокращеннуюСсылку(ДлиннаяСсылка) Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос(); Запрос.УстановитьТелоИзСтроки("url="+ДлиннаяСсылка, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); Результат = Соединение.ОтправитьДляОбработки(Запрос); Если Результат.КодСостояния = 200 Тогда СтрокаОтвет = Результат.ПолучитьТелоКакСтроку(); ИтоговаяСсылка = Лев(Сред(СтрокаОтвет, СтрНайти(СтрокаОтвет, """shortenedUrl"":""") + 16), СтрНайти(Сред(СтрокаОтвет, СтрНайти(СтрокаОтвет, """shortenedUrl"":""") + 16), """") - 1); Возврат ИтоговаяСсылка; Иначе Возврат ""; КонецЕсли; КонецФункции Сервер 405 отвечает. Что не так сделал? |
|||
23
Garykom
21.08.23
✎
17:44
|
||||
24
MMB
21.08.23
✎
17:51
|
Попробовал "/" - так же 405
Попробовал "/--" - возвращает html станицу, но там что-то вроде документации с примерами кода на странице о_О Пока работает только (14) не смотря на корявость =) |
|||
25
Garykom
21.08.23
✎
17:53
|
(24) угу, аналогично
походу сервис кривоват |
|||
26
Garykom
21.08.23
✎
17:54
|
Кликер
Серьёзный укорачиватель URL У этого сервиса есть REST-образный интерфейс, позволяющий автоматизировать работу с ним. Для того чтобы воспользоваться им, достаточно передать переменную url в POST или GET запросе по адресу https://clck.ru/--, например, так: $ curl https://clck.ru/--?url=https://ya.ru или вот так: >>> url = 'http://bit.ly' >>> import urllib2 >>> fetcher = urllib2.urlopen( 'https://clck.ru/--?url='+ url) >>> fetcher.read() 'https://clck.ru/8JM' или даже так: <?=file_get_contents("https://clck.ru/--?url=http://b23.ru");?> Добавочные примеры от Игоря Евсюкова: #import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; NSString *address = @"https://clck.ru/"; NSString *urlString = \ [NSString stringWithFormat:@"https://clck.ru/--?url= %@",address]; NSURL *url = [NSURL URLWithString:urlString]; NSString *adr = [NSString stringWithContentsOfURL:url]; NSLog(adr); [pool drain]; return 0; } require 'open-uri' open("https://clck.ru/--?url= "+"https://clck.ru/").read => https://clck.ru/5U Вернуться к ручному добавлению ссылок Версия 5, © 2010-2023 «"Яндекс"» только GET походу, POST нету |
|||
27
MMB
21.08.23
✎
17:58
|
Вот так, кстати тоже работает. Если -- перед ? добавить то в Результат.ПолучитьТелоКакСтроку() сразу коротка ссылка будет
Функция ПолучитьСокращеннуюСсылку(ДлиннаяСсылка) Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/--?url="+ДлиннаяСсылка); Результат = Соединение.Получить(Запрос); Если Результат.КодСостояния = 200 Тогда Возврат Результат.ПолучитьТелоКакСтроку(); Иначе Возврат ""; КонецЕсли; КонецФункции |
|||
28
Garykom
21.08.23
✎
18:01
|
&НаСервере
Функция ПолучитьСокращеннуюСсылку(ДлиннаяСсылка) СтрокаURL = КодироватьСтроку(ДлиннаяСсылка, СпособКодированияСтроки.URLВКодировкеURL, "UTF-8"); Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/?url="+СтрокаURL); Результат = Соединение.Получить(Запрос); Если Результат.КодСостояния = 200 Тогда СтрокаОтвет = Результат.ПолучитьТелоКакСтроку(); ИтоговаяСсылка = Лев(Сред(СтрокаОтвет, СтрНайти(СтрокаОтвет, """shortenedUrl"":""") + 16), СтрНайти(Сред(СтрокаОтвет, СтрНайти(СтрокаОтвет, """shortenedUrl"":""") + 16), """") - 1); Возврат ИтоговаяСсылка; Иначе Возврат ""; КонецЕсли; КонецФункции |
|||
29
Garykom
21.08.23
✎
18:02
|
(27) добавь
СтрокаURL = КодироватьСтроку(ДлиннаяСсылка, СпособКодированияСтроки.URLВКодировкеURL, "UTF-8"); |
|||
30
Garykom
21.08.23
✎
18:04
|
&НаСервере
Функция ПолучитьСокращеннуюСсылку(ДлиннаяСсылка) СтрокаURL = КодироватьСтроку(ДлиннаяСсылка, СпособКодированияСтроки.URLВКодировкеURL, "UTF-8"); Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/--?url="+СтрокаURL); Результат = Соединение.Получить(Запрос); Если Результат.КодСостояния = 200 Тогда Возврат Результат.ПолучитьТелоКакСтроку(); Иначе Возврат ""; КонецЕсли; КонецФункции |
|||
31
MMB
21.08.23
✎
18:06
|
(29) Таки да, работает. Но как я понял яндекс как-то на своей стороне обрабатывает, даже если ему просто текстом как есть ссылку скинуть все равно работает.
Итого в результате имеем: Функция ПолучитьСокращеннуюСсылку(ДлиннаяСсылка) СтрокаURL = КодироватьСтроку(ДлиннаяСсылка, СпособКодированияСтроки.URLВКодировкеURL, "UTF-8"); Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/--?url="+СтрокаURL); Результат = Соединение.Получить(Запрос); Если Результат.КодСостояния = 200 Тогда Возврат Результат.ПолучитьТелоКакСтроку(); Иначе Возврат ""; КонецЕсли; КонецФункции |
|||
32
MMB
21.08.23
✎
18:07
|
(30) Сорри не увидел сообщение)
|
|||
33
Garykom
21.08.23
✎
18:13
|
и с POST разобрался
&НаСервере Функция ПолучитьСокращеннуюСсылкуPOST(ДлиннаяСсылка) Соединение = Новый HTTPСоединение("clck.ru",443,,,,,Новый ЗащищенноеСоединениеOpenSSL()); Запрос = Новый HTTPЗапрос("/--"); Запрос.Заголовки.Вставить("Content-Type", "application/x-www-form-urlencoded"); Запрос.УстановитьТелоИзСтроки("url="+ДлиннаяСсылка, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать); Результат = Соединение.ОтправитьДляОбработки(Запрос); Если Результат.КодСостояния = 200 Тогда Возврат Результат.ПолучитьТелоКакСтроку(); Иначе Возврат ""; КонецЕсли; КонецФункции |
|||
34
Garykom
21.08.23
✎
18:17
|
(31) >Но как я понял яндекс как-то на своей стороне обрабатывает, даже если ему просто текстом как есть ссылку скинуть все равно работает.
возможно это не яндекс а платформа 1С сама URLEncode делает если встречает в URL неподдерживаемые символы как минимум для (33) после установки Content-Type оно делает само |
|||
35
Garykom
21.08.23
✎
18:19
|
(34)+ кстати браузеры это тоже сами делают
например хром адрес https://моидокументы.рф после перехода если адрес скопировать из строки адреса вставляет: https://xn--d1achjhdicc8bh4h.xn--p1ai/ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |