1. 程式人生 > >什麼是短連線,如何用 Python 生成短連線?

什麼是短連線,如何用 Python 生成短連線?

在編輯微信文章時,發現微信頁面插入一個網址會變的非常醜陋,稍微長一些的顯示效果都不好。

比如這樣:

強制拉伸

對於讀者來說,由於微信裡不能插入外鏈,讀者要想訪問一個網址,不能點選,只能手輸。

WTF,那麼長的一個網址!

於是我想到了短網址。

什麼是短連結 ?

短網址,很簡單,就是把普通網址,轉換成比較短的網址。

短網址服務是隨著 Twitter 和微博這樣短小的網際網路內容的興起而出現的,因為這些社交網站的 140 字字數限制,如果網址不用什麼辦法來縮短的話,會很容易佔據一條訊息的絕大部分篇幅,甚至使得訊息無法發出。

常見的就是微博的短網址,比如:http://t.cn/EZXC3rf

。短網址在微博這些限制字數的應用裡,好處不言而喻。短、字元少、美觀、便於釋出、傳播。

新浪、百度等等,很多都有提供短網址轉換服務。

新浪短網址


短網址的原理

當我們在瀏覽器裡輸入 http://t.cn/EZXC3rf

1、DNS 首先解析獲得 http://t.cn 的 IP 地址;
2、當 DNS 獲得 IP 地址以後(比如:116.211.169.137),會向這個地址傳送 HTTP GET 請求,查詢短碼 EZXC3rf
3、http://t.cn 伺服器會通過短碼 EZXC3rf 獲取對應的長 URL;
4、請求通過 HTTP 301 轉到對應的長 URL。


實現

短網址服務是需要短網址伺服器的,這裡我們不再重複造輪子。

百度、新浪等短網址服務都有相應的 API 介面可以直接呼叫。

短網址介面

新浪短網址介面的穩定性和跳轉速度還是很給力的,但是介面使用時需要進行鑑權先,那就有點麻煩了,這裡我們就不再演示。

百度的呢,百度的倒是不用鑑權,但是在轉換我的部落格地址時,居然報異常!

異常

於是,又找到了一個小眾的介面:http://suo.im/

使用也很簡單:

TXT格式短網址 API 介面

介面:http://suo.im/api.php?url=urlencode(‘要縮短的網址’)
例如:http://suo.im/api.php?url=http%3A%2F%2Fwww.baidu.com


返回:http://suo.im/baidu

JSON格式短網址API介面

說明:format為json
例如:http://suo.im/api.php?format=json&url=http%3A%2F%2Fwww.baidu.com
返回:{“url”:“http://suo.im/baidu",“err”:"”}

程式碼實現

有介面,程式碼實現就很簡單了:

import requests

long_url = "https://hoxis.github.io/learn-microservice-from-0.html"
querystring = {"url":long_url}

url = "http://suo.im/api.php"

response = requests.request("GET", url, params=querystring)

print(response.text)

執行完,就能生成自定義網址的短網址啦!

$ python suo.py
http://suo.im/51ckP5

再也不用擔心公眾號裡插入連結了!


參考:

http://t.cn/RYUf0PW


如果覺得有用,歡迎關注我的微信,一起學習,共同進步,不定期推出贈書活動~

你的關注是對我最大的鼓勵!

最近蒐集到傳智播客 2018 最新 Python 和 Java 教程!關注本公眾號,後臺回覆「2018」即可獲取下載地址。