我有一个URL到一个要点,原始版本,但它不会总是更新。假设我得到了原始链接
https://gist.githubusercontent.com/username/27610b513177a762470ac95160c050fd/raw/f567a5ade06c9b8e7c101fe62fa3a4cac07e5bd7/test%2520gist
但是我改变了这个要点的内容,URL将会改变,第一个链接将不会包含这些改变。
https://gist.githubusercontent.com/username/27610b513177a762470ac95160c050fd/raw/60e3b421faa7e4e9ea6cd27e4a6ffd4809d3d40e/test%2520gist
我如何制作一个永久的链接,它将永远包含所有的更改,而不仅仅是该链接的修订?
我试过ID,只是id/raw,但ID甚至不是像其他人说的那样是一个数字,它更像是一个哈希,有人能帮我吗?
更新:
我已经尝试了建议的答案,但它仍然通向最后的修订,它有更新的延迟吗?
发布于 2021-05-10 14:45:18
对于那些可能需要程序化解决方案的人(例如,在web抓取过程中动态编辑/更新要点)...
截至2021年5月,避免与上次提交的缓存相关的延迟的变通方法是使用与UI的"Raw“按钮相关的URL,如下所示。
感兴趣的
https://gist.github.com/{user}/{gist_hash}/raw/{commit_hash}/{filename}
如果解析与此按钮关联的链接的DOM,则可以绕过通常与使用以下格式的链接相关的2-3分钟延迟:https://gist.github.com/{user}/{gist_hash}/raw
在Python语言中检索此链接的
检索原始gist链接的脚本(绕过与缓存相关的等待时间)
# Python 3.9.1
import requests
from bs4 import BeautifulSoup
repo_url = f'https://gist.githubusercontent.com/{user}/{gist_hash}'
html = requests.get(repo_url).text
soup = BeautifulSoup(html, 'html.parser')
button = soup.find_all('div', class_='file-actions flex-order-2 pt-0') # Finds "Raw" button
raw_url = f"https://gist.github.com/{button[0].contents[1].attrs['href'][1:]}"
> print(raw_url)
'https://gist.githubusercontent.com/{user}/{gist_hash}/raw/{commit_hash}/{filename}'
https://stackoverflow.com/questions/47066049
复制相似问题