Каков алгоритм работы сокращалки ссылок?

Интересует именно алгоритм. Как генерируется укороченная ссылка. Собираюсь реализовать на python.
  • Вопрос задан
  • 4891 просмотр
Пригласить эксперта
Ответы на вопрос 4
ну реально, спросите google
Ответ написан
Комментировать
deadbyelpy
@deadbyelpy
веб-шмеб
эм. генерируейте любую коротку последовательность.
сохраните ее у себя в виде ключ - ссылка
совсем не обязательно генерировать короткую ссылку по обычной. можно просто воспользоваться случайностью.
Ответ написан
Комментировать
begemot_sun
@begemot_sun
Программист в душе.
А можно генерировать хеш от URL и обрезать и запоминать где надо.
Ответ написан
ZeLib0ba
@ZeLib0ba
[IT]ишник | http://surin.ru
Изучаю питон и тоже интересно было написать сокращалку, где то находил реализацию на пхп. переписал под питон 3.x.

#!/usr/bin/python
__author__ = 'ZeLib0ba -> http://surin.ru'
import random
from os import path

def urlsh(long_url): # возвращает короткую ссылку вида http://surin.ru/sh/eGbWp
    domain_name='http://surin.ru/'
    phph_file_folder='./sh/'
    if not path.exists('.htaccess'):
        ht_f=open('.htaccess','w')# если нет создаем файл .htaccess
        ht_f.write('RewriteEngine On\nRewriteBase %s\n' % phph_file_folder[1:-1])# записываем в него первые две строчки для переадресации
    else:
        ht_f=open('.htaccess','a')
    link=''.join(random.sample('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',5)) # генерируем случайную последовательность из 5 символов для нашей короткой ссылки
    data=phph_file_folder + link + '.php'
    php_file=open(data,'w')
    php_file.write('<?php header(\'Location: %s\') ?>\n' % long_url)
    php_file.close()
    ht_f.write('RewriteRule ^%s %s%s' % (link,phph_file_folder[2:],link+'.php\n'))
    ht_f.close()
    return domain_name + phph_file_folder[2:] + link
a=urlsh('http://yandex.ru')
print(a)

зы. за код не бейте , начинающий питонист)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 нояб. 2024, в 22:26
3500 руб./за проект
22 нояб. 2024, в 21:47
3000 руб./за проект
22 нояб. 2024, в 21:44
50000 руб./за проект