Python實(shí)現(xiàn)url長短鏈接的轉(zhuǎn)換
簡介
短鏈接,通俗來說,就是將長的URL網(wǎng)址,通過程序計(jì)算等方式,轉(zhuǎn)換為簡短的網(wǎng)址字符串。早期短鏈接廣泛應(yīng)用于圖片上傳網(wǎng)站,通過縮短網(wǎng)址URL鏈接字?jǐn)?shù),達(dá)到減少代碼字符串的目的。更便于使用者引用網(wǎng)址,寫入代碼中。節(jié)省字符數(shù)空間。常見于網(wǎng)店圖片分類的使用,因有字符限制,運(yùn)用短鏈接,達(dá)到外鏈圖片的目的,自微博盛行以來,在微博字?jǐn)?shù)有限的特色下,短鏈接也盛行于微博網(wǎng)站,以節(jié)省字?jǐn)?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}")
運(yùn)行結(jié)果
知識點(diǎn)補(bǔ)充
Python:短網(wǎng)址
簡介:短網(wǎng)址(Short URL),是指形式上比較簡短并具有自動(dòng)重定向到指定鏈接功能的網(wǎng)址。隨著網(wǎng)絡(luò)、移動(dòng)通信的普及,越來越多的人喜歡通過微博、手機(jī)短信發(fā)布自己的信息。
使用場景:
1、有時(shí)微博、短信等都有字?jǐn)?shù)限制,太長的網(wǎng)址會(huì)占用大量字節(jié)甚至無法輸入,而這時(shí)使用短網(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)過實(shí)測:只有部分可用
# 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)
運(yùn)行結(jié)果
到此這篇關(guān)于Python實(shí)現(xiàn)url長短鏈接的轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)Python url長短鏈接轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python中plot實(shí)現(xiàn)即時(shí)數(shù)據(jù)動(dòng)態(tài)顯示方法
這篇文章主要為大家詳細(xì)介紹了python中plot實(shí)現(xiàn)即時(shí)數(shù)據(jù)動(dòng)態(tài)顯示方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06Python大批量寫入數(shù)據(jù)(百萬級別)的方法
這篇文章主要給大家介紹了關(guān)于Python大批量寫入數(shù)據(jù)(百萬級別)的相關(guān)資料,在日常處理數(shù)據(jù)的過程中,我們都有批量寫入數(shù)據(jù)的需求,文中給出了詳細(xì)的示例代碼,需要的朋友可以參考下2023-07-07python算法學(xué)習(xí)雙曲嵌入論文代碼實(shí)現(xiàn)數(shù)據(jù)集介紹
由于雙曲嵌入相關(guān)的文章已經(jīng)有了一系列的代碼。本篇博客主要目的實(shí)現(xiàn)最開始的雙曲嵌入論文,將論文中有些直接寫出來的內(nèi)容進(jìn)行了細(xì)節(jié)的推導(dǎo),同時(shí)實(shí)現(xiàn)對應(yīng)的代碼2021-11-11python在線編譯器的簡單原理及簡單實(shí)現(xiàn)代碼
這篇文章主要介紹了python在線編譯器的簡單原理及簡單實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02python等差數(shù)列求和公式前 100 項(xiàng)的和實(shí)例
今天小編就為大家分享一篇python等差數(shù)列求和公式前 100 項(xiàng)的和實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02Java?超詳細(xì)講解核心類Spring?JdbcTemplate
JdbcTemplate?JdbcTemplate是Spring?JDBC核心包(core)中的核心類,它可以通過配置文件、注解、Java?配置類等形式獲取數(shù)據(jù)庫的相關(guān)信息,實(shí)現(xiàn)了對JDBC開發(fā)過程中的驅(qū)動(dòng)加載、連接的開啟和關(guān)閉、SQL語句的創(chuàng)建與執(zhí)行、異常處理、事務(wù)處理、數(shù)據(jù)類型轉(zhuǎn)換等操作的封裝2022-04-04