一、方法原理
1、使用GitHub的Issues問題功能。
新建一個Issues問題請求
將圖片拖拉或者上傳到問題框后,會返回一個地址,這個地址就是圖片直鏈

2、通過訪問github倉庫內的圖片地址並進行修改

例如我的image-host倉庫,地址是:https://github.com/wangchuanli001/image-host/tree/master/imgtemp
對於對應的圖片,例如snowtree.jpg,
https://github.com/wangchuanli001/image-host/blob/master/imgtemp/snowtree.jpg(原地址)
進行更改后(可以作為直鏈訪問):
https://github.com/wangchuanli001/image-host/blob/master/imgtemp/snowtree.jpg?raw=true
https://github.com/wangchuanli001/image-host/raw/master/imgtemp/snowtree.jpg
二、拓展
對於圖片的上傳只要記錄下上傳的文件路徑以及文件名,就可以免費使用github作為圖床使用了。
1、通過爬蟲進行爬取github上的內容,進行截取和拼接形成圖片直鏈
這個Python爬蟲有編碼問題,即gbk編碼問題
import re import urllib.request from bs4 import BeautifulSoup url = "https://github.com/wangchuanli001/image-host/tree/master/imgtemp" def getdoc(): html_doc = urllib.request.urlopen(url).read() f = open("doc.txt","wb") f.write(html_doc) f.close() def test(): f = open("doc.txt","rb+") s = f.read() soup = BeautifulSoup(s,"html.parser",from_encoding="GB18030") print ("start") links = soup.select('a') for link in links: print (link) f.close()
2、通過圖片上傳工具進行記錄
記錄本地文件路徑和文件名,上傳后生成直鏈。
import os # 從本地clone的倉庫中得到文件列表 def fileListFunc(fileList,filePath,suffix): for filename in os.listdir(filePath): if os.path.isdir((filePath+"/"+filename)): # print (filePath+"/"+filename) fileListFunc(fileList,(filePath+"/"+filename),suffix) else: if filename.endswith(suffix): fileList.append(filePath+"/"+filename) return fileList # 對列表中的文件進行字符串拼接成圖片鏈接 def listHandler(fileList,filePath): for i in range(0,len(fileList)): fileList[i] = "<img src=\""+fileList[i].replace(filePath,"https://github.com/你的github用戶名/image-host/raw/master")+"\" height=\"200\" width=\"200\">" fileList.append("-----------------------") # 將圖片鏈接追加到md文件的最后 def list2md(fileList): fo = open("image.md","a+") for item in fileList: fo.write(item) fo.close() fileList = [] filePath = "E:\GitHub\Respositories\image-host" fileLists = fileListFunc(fileList,filePath,"jpg") listHandler(fileLists,filePath) print (fileLists) list2md(fileLists)
