Python實現(xiàn)url長短鏈接的轉(zhuǎn)換
簡介
短鏈接,通俗來說,就是將長的URL網(wǎng)址,通過程序計算等方式,轉(zhuǎn)換為簡短的網(wǎng)址字符串。早期短鏈接廣泛應(yīng)用于圖片上傳網(wǎng)站,通過縮短網(wǎng)址URL鏈接字數(shù),達到減少代碼字符串的目的。更便于使用者引用網(wǎng)址,寫入代碼中。節(jié)省字符數(shù)空間。常見于網(wǎng)店圖片分類的使用,因有字符限制,運用短鏈接,達到外鏈圖片的目的,自微博盛行以來,在微博字數(shù)有限的特色下,短鏈接也盛行于微博網(wǎng)站,以節(jié)省字數(shù),給博主發(fā)布更多文字的空間。
案例源碼
# -*- coding: utf-8 -*-
# time: 2022/11/28 11:08
# file: football-demo.py
# 公眾號: 玩轉(zhuǎn)測試開發(fā)
import requests
import pyshorteners as psn
def long_to_short(url):
url = psn.Shortener().chilpit.short(url)
return url
def short_to_long(url):
res = requests.head(url)
# message = {'Date': 'Sun, 27 Nov 2022 17:26:32 GMT', 'Content-Type': 'text/html; charset=UTF-8',
# 'Connection': 'keep-alive', 'X-Powered-By': 'PHP/5.3.3', 'Location': 'http://www.baidu.com',
# 'CF-Cache-Status': 'DYNAMIC', 'Server-Timing': 'cf-q-config;dur=6.9999950937927e-06',
# 'Report-To': '{"endpoints":[{"url":"https:\\/\\/a.nel.cloudflare.com\\/report\\/v3?s=dZVwSakX8hPJ3YnxC%2FVp%2B2wBnUiDEfcjSHtVUz2NjiCpKI46AjQv2zDtngtoV4fSb1oRuvsD4MNUfjObf69EuCoRzrqooW9M94kez0KhF%2F5QiraTBcsNGhOhvQ%3D%3D"}],"group":"cf-nel","max_age":604800}',
# 'NEL': '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}', 'Server': 'cloudflare',
# 'CF-RAY': '770c91c26998cfac-SJC'}
return res.headers.get("location")
if __name__ == '__main__':
long_link = "http://www.baidu.com/"
short_link = long_to_short(url=long_link) # 長鏈接 轉(zhuǎn) 短鏈接
print(f"長鏈接轉(zhuǎn)為短鏈接:{short_link}")
long_restore_link = short_to_long(url=short_link) # 短鏈接 還原為 長鏈接
print(f"還原完成后的鏈接:{long_restore_link}")運行結(jié)果


知識點補充
Python:短網(wǎng)址
簡介:短網(wǎng)址(Short URL),是指形式上比較簡短并具有自動重定向到指定鏈接功能的網(wǎng)址。隨著網(wǎng)絡(luò)、移動通信的普及,越來越多的人喜歡通過微博、手機短信發(fā)布自己的信息。
使用場景:
1、有時微博、短信等都有字數(shù)限制,太長的網(wǎng)址會占用大量字節(jié)甚至無法輸入,而這時使用短網(wǎng)址服務(wù)就顯得十分必要和方便了。
2、短網(wǎng)址服務(wù),能夠?qū)⒛珢鄣男侣勬溄?、博客地址、論壇帖子、淘寶店鋪、淘寶商品等的冗長的網(wǎng)址轉(zhuǎn)換縮短為更簡短、方便的短網(wǎng)址的工具。
pyshorteners是Python中簡單的URL縮短庫,提供了18種短鏈根域名供使用。
安裝:
pip install pyshorteners
pyshorteners有16種短鏈根域名供使用:
# adfly.py # bitly.py # chilpit.py # clckru.py # cuttly.py # dagd.py # gitio.py # isgd.py # nullpointer.py # osdb.py # owly.py # post.py # qpsru.py # shortcm.py # tinycc.py # tinyurl.py
部分短鏈根域名需要api_key拋出異常AttributeError: 'Shortener' object has no attribute 'api_key',則建議使用可以不需要api_key的
經(jīng)過實測:只有部分可用
# clckru.py # dagd.py # osdb.py # qpsru.py
示例:qpsru
import pyshorteners as psn url = "http://www.baidu.com/" u = psn.Shortener().qpsru.short(url) print(u)
運行結(jié)果


到此這篇關(guān)于Python實現(xiàn)url長短鏈接的轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)Python url長短鏈接轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python使用QQ郵箱實現(xiàn)自動發(fā)送郵件
這篇文章主要為大家詳細介紹了python使用QQ郵箱實現(xiàn)自動發(fā)送郵件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-06-06
Python 網(wǎng)絡(luò)編程之TCP客戶端/服務(wù)端功能示例【基于socket套接字】
這篇文章主要介紹了Python 網(wǎng)絡(luò)編程之TCP客戶端/服務(wù)端功能,結(jié)合實例形式分析了Python使用socket套接字實現(xiàn)TCP協(xié)議下的客戶端與服務(wù)器端數(shù)據(jù)傳輸操作技巧,需要的朋友可以參考下2019-10-10
Python實戰(zhàn)之夢幻鋼琴小游戲的實現(xiàn)
這篇文章主要為大家詳細介紹了如何利用Python語言編寫一款界面化的(Tkinter)電子鋼琴小程序,文中的示例代碼講解詳細,感興趣的可以了解一下2023-02-02
Python的加密模塊之hashlib 與 base64詳解及常用加密方法
我們來學(xué)習(xí)一下 Python 中的加密模塊,加密模塊在工作中被廣泛應(yīng)用,比如數(shù)據(jù)的傳入 不希望被捕獲,通過把數(shù)據(jù)加密。這樣即使被捕獲也無法獲取到數(shù)據(jù)的真實信息,今天我們就來學(xué)習(xí)一下關(guān)于加密的方法,感興趣的朋友跟隨小編一起看看吧2023-02-02

