使用GitHub作Free圖床


一、方法原理

  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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM