如何编写Python脚本从Instagram、Reddit等网站下载表情包至文件夹
Python 实现从Reddit/Instagram下载表情包到指定文件夹
Reddit 表情包下载方案
依赖安装
pip install praw requests
脚本示例
import praw import requests import os # 初始化Reddit API客户端(需替换为自己的开发者信息) reddit = praw.Reddit( client_id="你的client_id", client_secret="你的client_secret", user_agent="表情包下载工具:v1.0 (by u/你的用户名)" ) # 配置目标社区和保存路径 target_subreddit = "memes" save_folder = "./reddit_meme_downloads" # 创建保存文件夹(不存在则自动创建) os.makedirs(save_folder, exist_ok=True) # 遍历社区热门帖子(可替换为new/top等排序方式) for post in reddit.subreddit(target_subreddit).hot(limit=20): # 只处理图片格式的帖子 if post.url.endswith(('.jpg', '.jpeg', '.png')): # 生成保存文件名 file_name = f"{post.id}{os.path.splitext(post.url)[1]}" save_path = os.path.join(save_folder, file_name) # 下载并保存图片 img_response = requests.get(post.url) with open(save_path, 'wb') as f: f.write(img_response.content) print(f"已保存: {save_path}")
关键说明
- 需先在Reddit开发者平台创建应用,获取
client_id、client_secret参数 limit参数控制下载帖子数量,可按需调整- 支持切换
hot为new/top,获取不同排序的表情包
Instagram 表情包下载方案
依赖安装
pip install instagrapi
脚本示例
from instagrapi import Client import os # 初始化Instagram客户端 cl = Client() # 使用小号登录(避免主账号风控) cl.login("你的Ins用户名", "你的Ins密码") # 配置目标话题/用户和保存路径 target = "memes" # 支持用户名或话题(无需加#) save_folder = "./instagram_meme_downloads" os.makedirs(save_folder, exist_ok=True) # 爬取话题下的最新帖子(若爬取用户则用user_medias方法) medias = cl.hashtag_medias_recent(target, amount=20) for media in medias: # 处理单图帖子 if media.media_type == 1: img_url = media.thumbnail_url save_path = os.path.join(save_folder, f"{media.pk}.jpg") # 利用客户端会话下载图片 img_response = cl.session.get(img_url) with open(save_path, 'wb') as f: f.write(img_response.content) print(f"已保存: {save_path}") # 处理多图帖子(仅下载第一张) elif media.media_type == 8: img_url = media.resources[0].thumbnail_url save_path = os.path.join(save_folder, f"{media.pk}_1.jpg") img_response = cl.session.get(img_url) with open(save_path, 'wb') as f: f.write(img_response.content) print(f"已保存多图帖子首图: {save_path}") # 退出登录 cl.logout()
关键说明
- 推荐使用闲置小号登录,避免主账号因频繁操作被限制
- 若遇到登录验证,可调用
cl.login_challenge()手动处理验证流程 amount参数控制下载数量,Instagram有严格的调用频率限制,建议不要设置过大
通用注意事项
- 频率限制: 两个平台均有API调用频率限制,短时间内大量请求可能导致IP/账号被封禁
- 版权合规: 下载的表情包仅可用于个人学习,禁止用于商业用途
- 路径配置: 可将
save_folder替换为绝对路径,确保文件保存到指定位置
内容的提问来源于stack exchange,提问作者Resonance
相关产品推荐
相关产品推荐

