如何在Python中制作URL缩短器(代码实现示例)

Python如何制作URL缩短器?本文带你了解如何使用 Bitly 和 Cuttly API 使用 Python 中的请求库以编程方式缩短长 URL,包括一些Python制作URL缩短器示例。
【如何在Python中制作URL缩短器(代码实现示例)】如何在Python中制作URL缩短器?一个URL缩短器是一个工具,需要很长的URL,并把它变成一个短重定向到目标页面。URL 缩短器在许多情况下被证明是有用的,例如跟踪点击次数或要求用户只输入少量字符,因为长 URL 难以记忆。
在本教程中,我们将使用Bitly和Cuttly  API 在 Python 中自动缩短 URL。
我们不会在本教程中使用任何 API 包装器,因此,为了方便起见,我们需要请求库,让我们安装它:

pip3 install requests

Bitly APIPython如何制作URL缩短器?使用 Bitly API。首先,你需要注册一个新帐户,它是免费的,如果你已经拥有一个,那么只需使用它。
创建 Bitly 帐户后,我们需要获取我们的帐户 ID,以便我们可以访问 API。继续并单击你右上角的个人资料,然后单击帐户设置:
如何在Python中制作URL缩短器(代码实现示例)

文章图片
之后,获取我们在代码中需要的帐户名称,如下图所示:
如何在Python中制作URL缩短器(代码实现示例)

文章图片
好的,这就是我们所需要的,让我们现在开始编码:
import requests# account credentials username = "o_3v0ulxxxxx" password = "your_password_here"

Python制作URL缩短器示例:这username是我刚刚向你展示如何获取它的帐户名称,password是你的 Bitly 帐户的实际密码,因此你应该将它们替换为你的凭据。
如果你仔细阅读Bitly API 文档,你会发现我们需要一个访问令牌才能进行 API 调用以获取缩短的 URL,因此让我们创建一个新的访问令牌:
# get the access token auth_res = requests.post("https://api-ssl.bitly.com/oauth/access_token", auth=(username, password)) if auth_res.status_code == 200: # if response is OK, get the access token access_token = auth_res.content.decode() print("[ !] Got access token:", access_token) else: print("[ !] Cannot get access token, exiting...") exit()

如何在Python中制作URL缩短器?我们使用requests.post()方法向/oauth/access_token端点发出 POST 请求并获取我们的访问令牌。我们传递了auth参数以将我们的帐户凭据添加到请求标头中。
现在我们有了访问令牌,在我们深入研究缩短 URL 之前,我们首先需要获取与我们的 Bitly 帐户关联的组 UID:
# construct the request headers with authorization headers = {"Authorization": f"Bearer {access_token}"}# get the group UID associated with our account groups_res = requests.get("https://api-ssl.bitly.com/v4/groups", headers=headers) if groups_res.status_code == 200: # if response is OK, get the GUID groups_data = https://www.lsbin.com/groups_res.json()['groups'][ 0] guid = groups_data[ 'guid'] else: print("[ !] Cannot get GUID, exiting...") exit()

现在我们有了guid,让我们请求缩短示例 URL:
# the URL you want to shorten url = "https://www.xyz.com/topic/using-apis-in-python" # make the POST request to get shortened URL for `url` shorten_res = requests.post("https://api-ssl.bitly.com/v4/shorten", json={"group_guid": guid, "long_url": url}, headers=headers) if shorten_res.status_code == 200: # if response is OK, get the shortened URL link = shorten_res.json().get("link") print("Shortened URL:", link)

我们正在向/v4/shorten端点发送一个 POST 请求以缩短我们的url,我们传递了group_guid我们帐户的 ,url我们想要缩短作为请求的正文。
我们使用json参数而不是datainrequests.post()方法将我们的 Python 字典自动编码为JSON 格式并使用Content-Typeas发送application/json,然后我们添加了标头以包含我们之前获取的授权令牌,这是我的输出:
Shortened URL: https://bit.ly/32dtJ00

太好了,我们已经成功地使用 Bitly 缩短了我们的 URL!这是他们的官方文档。
Cuttly API另一种选择是使用 Cuttly API,创建一个新帐户并使用它的 API非常容易。注册帐户后,转到“你的帐户”并单击“编辑帐户”:
如何在Python中制作URL缩短器(代码实现示例)

文章图片

之后,你将看到你的帐户详细信息,继续并单击“更改 API 密钥”以获取新的 API 密钥(以便我们可以发出 API 请求):
如何在Python中制作URL缩短器(代码实现示例)

文章图片
Python制作URL缩短器示例 - 要使用 Cuttly 缩短你的 URL,非常简单:
import requestsapi_key = "64d1303e4ba02f1ebba4699bc871413f0510a" # the URL you want to shorten url = "https://www.xyz.com/topic/using-apis-in-python" # preferred name in the URL api_url = f"https://cutt.ly/api/api.php?key={api_key}& short={url}" # or # api_url = f"https://cutt.ly/api/api.php?key={api_key}& short={url}& name=some_unique_name" # make the request data = https://www.lsbin.com/requests.get(api_url).json()["url"] if data[ "status"] == 7: # OK, get shortened URL shortened_url = data[ "shortLink"] print("Shortened URL:", shortened_url) else: print("[ !] Error Shortening URL:", data)

Python如何制作URL缩短器?只需替换你的 API 密钥api_key和你想要缩短的 URL,你就可以开始了,这是我的输出:
Shortened URL: https://cutt.ly/mpAOd1b

请注意,你可以指定一个唯一的名称,结果将类似于:https://cutt.ly/some_unique_name,你可以通过简单地向nameURL 中的 GET 请求添加参数来实现这一点。
阅读有关Cuttly 文档的更多信息。
结论如何在Python中制作URL缩短器?通过以上的具体示例,现在你知道如何使用 Bitly 和 Cuttly 缩短器来缩短 URL!请注意,这些提供程序提供了更多用于获取点击次数、统计信息等的端点,你应该查看他们的文档以获取更多详细信息。

    推荐阅读