欢迎访问宙启技术站
智能推送

Python编写一个简化URL的程序

发布时间:2023-12-04 12:10:24

下面是一个python编写的简化URL的程序,程序会将长的URL转换为短的URL,并提供转换后的URL的使用示例。

import string
import random

class URLShortener:
    def __init__(self):
        self.urls = {}

    def shorten_url(self, original_url):
        characters = string.ascii_letters + string.digits
        short_url = ""
        
        while True:
            # 生成6个随机字符作为短URL的一部分
            for i in range(6):
                short_url += random.choice(characters)

            # 检查是否短URL已经存在,如果存在重新生成
            if short_url not in self.urls:
                break
            else:
                short_url = ""

        self.urls[short_url] = original_url
        return short_url

    def expand_url(self, short_url):
        if short_url in self.urls:
            return self.urls[short_url]
        else:
            return "Short URL does not exist!"

# 创建URLShortener对象
url_shortener = URLShortener()

# 调用shorten_url方法生成短URL
short_url1 = url_shortener.shorten_url("https://www.example.com/page1")
short_url2 = url_shortener.shorten_url("https://www.example.com/page2")

# 打印生成的短URL
print("Short URL for https://www.example.com/page1: ", short_url1)
print("Short URL for https://www.example.com/page2: ", short_url2)

# 调用expand_url方法还原短URL为原始URL
print("Expanded URL for", short_url1, ":", url_shortener.expand_url(short_url1))
print("Expanded URL for", short_url2, ":", url_shortener.expand_url(short_url2))

输出示例:

Short URL for https://www.example.com/page1:  Nm48rU
Short URL for https://www.example.com/page2:  Fdfg7Y
Expanded URL for Nm48rU : https://www.example.com/page1
Expanded URL for Fdfg7Y : https://www.example.com/page2

在上面的示例中,我们首先导入需要的模块,然后定义了一个URLShortener类,这个类包含了两个方法,shorten_urlexpand_url

shorten_url方法接收一个原始URL作为输入,并将其转换为短URL。我们首先定义了可能出现在短URL中的字符集合,然后在一个无限循环中生成6个随机字符,如果生成的短URL已经存在,就重新生成。最后将短URL与原始URL的对应关系保存到self.urls字典中,并返回短URL。

expand_url方法接收一个短URL作为输入,并返回原始URL。我们在self.urls字典中查找给定的短URL,如果存在则返回对应的原始URL,否则返回"Short URL does not exist!"。

在主程序中,我们首先创建一个URLShortener对象,然后使用shorten_url方法生成两个短URL并存储起来。最后使用expand_url方法还原短URL为原始URL,并打印输出。

总结:

这个简化URL的程序使用了随机字符生成短URL,通过字典保存原始URL和短URL的对应关系。通过调用shorten_url方法可以生成短URL,并通过调用expand_url方法可以还原短URL为原始URL。