You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub YML文件网页抓取raw链接提取失效求助

解决GitHub页面更新后无法抓取YML文件的问题

问题背景

此前通过解析GitHub文件页面的HTML结构提取raw链接,再下载保存YML文件的方法,因GitHub页面更新后返回JSON格式内容而失效。

解决方案

方案一:直接构造Raw链接(推荐)

GitHub文件页面链接格式固定,只需将链接中的/blob/替换为/raw/即可得到对应的Raw文件链接,无需依赖页面结构,稳定性最高。

代码实现

def get_raw_link_by_replace(action_file_page_link):
    return action_file_page_link.replace('/blob/', '/raw/')

调用示例

import requests

def saveFile(raw_link, file_name):
    response = requests.get(raw_link)
    if response.status_code == 200:
        name = f"{file_name}.yml"
        with open(name, "w", encoding='utf-8') as file:
            file.write(response.text)
        print(f"{name} 已保存!")
    else:
        print(f"请求失败,状态码:{response.status_code}")

link = "https://github.com/xavierLowmiller/xcodegen-action/blob/main/action.yml"
raw_link = get_raw_link_by_replace(link)
saveFile(raw_link, "example")

方案二:解析返回的JSON获取内容或Raw链接

GitHub现在返回的JSON数据中包含了文件的原始内容和Raw链接,可以直接解析JSON获取所需信息。

方法1:从JSON中提取Raw链接

import requests
import json

def get_raw_link_from_json(action_file_page_link):
    response = requests.get(action_file_page_link)
    data = json.loads(response.text)
    return data['payload']['blob']['displayUrl']

# 调用示例
link = "https://github.com/xavierLowmiller/xcodegen-action/blob/main/action.yml"
raw_link = get_raw_link_from_json(link)
saveFile(raw_link, "example")

方法2:直接从JSON中提取文件内容(跳过Raw链接步骤)

import requests
import json

def save_yml_from_json(action_file_page_link, file_name):
    response = requests.get(action_file_page_link)
    data = json.loads(response.text)
    yml_content = '\n'.join(data['payload']['blob']['rawLines'])
    name = f"{file_name}.yml"
    with open(name, "w", encoding='utf-8') as file:
        file.write(yml_content)
    print(f"{name} 已保存!")

# 调用示例
link = "https://github.com/xavierLowmiller/xcodegen-action/blob/main/action.yml"
save_yml_from_json(link, "example")

注意事项

  • 原saveFile函数中使用BeautifulSoup解析Raw页面是多余的,Raw页面返回的是纯文本内容,直接写入文件即可。
  • 方案一无需处理页面结构变化,是最推荐的实现方式。

内容的提问来源于stack exchange,提问作者Elmira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 14:12:33