如何从公开Google幻灯片中获取Slide ID以批量导出图片?
无需认证批量下载公开Google幻灯片所有JPEG格式幻灯片
要批量下载公开Google幻灯片的所有JPEG版本,无需认证的核心思路是从公开可访问的幻灯片嵌入页面源码中提取所有Slide ID,再构造下载链接批量获取。具体步骤如下:
1. 获取公开幻灯片的嵌入页面源码
访问幻灯片的嵌入页面(无需登录),URL格式为:https://docs.google.com/presentation/d/{PRESENTATION_ID}/embed
这里的{PRESENTATION_ID}就是你从公开分享URL中拿到的ID。
你可以用curl命令直接获取源码:
curl https://docs.google.com/presentation/d/{PRESENTATION_ID}/embed > slide_page.html
2. 提取所有Slide ID
公开嵌入页面的源码中包含所有幻灯片的slideId字段,你可以用正则表达式匹配提取。以下是两种实现方式:
命令行方式(grep):
grep -o '"slideId":"[a-zA-Z0-9_-]\+"' slide_page.html | cut -d '"' -f4 | sort -u
该命令会输出去重后的所有Slide ID。
Python代码方式:
import re import requests PRESENTATION_ID = "替换为你的演示文稿ID" embed_url = f"https://docs.google.com/presentation/d/{PRESENTATION_ID}/embed" # 获取页面内容 resp = requests.get(embed_url) resp.raise_for_status() # 匹配并去重Slide ID slide_ids = list(set(re.findall(r'"slideId":"([a-zA-Z0-9_-]+)"', resp.text)))
3. 批量构造下载链接并下载
拿到所有Slide ID后,用你已知的导出URL模板构造每个幻灯片的下载链接,批量请求并保存文件:
Python完整示例:
import re import requests PRESENTATION_ID = "替换为你的演示文稿ID" embed_url = f"https://docs.google.com/presentation/d/{PRESENTATION_ID}/embed" # 获取页面源码并提取Slide ID resp = requests.get(embed_url) resp.raise_for_status() slide_ids = list(set(re.findall(r'"slideId":"([a-zA-Z0-9_-]+)"', resp.text))) # 批量下载 for index, slide_id in enumerate(slide_ids, start=1): download_url = f"https://docs.google.com/presentation/d/{PRESENTATION_ID}/export/jpeg?id={PRESENTATION_ID}&pageid={slide_id}" img_resp = requests.get(download_url) img_resp.raise_for_status() # 保存文件 with open(f"slide_{index}_{slide_id}.jpg", "wb") as f: f.write(img_resp.content) print(f"已完成幻灯片 {index} 下载")
注意事项
- 确保目标幻灯片已设置为任何人可查看的公开权限,否则会返回403禁止访问错误。
- 该方法依赖Google幻灯片嵌入页面的HTML结构,如果Google后续调整页面布局,正则表达式可能需要更新。
- 控制下载请求频率,避免短时间内发送大量请求触发Google的访问限制。
内容的提问来源于stack exchange,提问作者Koaske Osaf
相关产品推荐
相关产品推荐

