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

是否存在可下载GraphSidecar中指定数量帖子的Instaloader函数?

Instaloader Sidecar帖子下载问题修复方案

核心问题(SidecarNode缺失Post属性)解决方法

post.get_sidecar_nodes()返回的SidecarNode为专属命名元组,仅存储边车内容的资源地址、是否为视频等独有属性,date_utc这类通用属性和所属主Post完全一致,无需额外构造Post对象,调整下载逻辑复用主Post属性即可,不建议直接将SidecarNode传入仅适配完整Post对象的posts_download_loop方法。

修正后代码实现

def _download_post(self, post, source, sidecar_limit, filter_func=None):
    if post.typename == 'GraphSidecar':
        # 遍历指定数量的边车节点
        for idx, node in enumerate(post.get_sidecar_nodes(end=sidecar_limit)):
            # 执行筛选逻辑,不符合条件直接跳过当前节点,不会中断下载
            if filter_func and not filter_func(node):
                continue
            # 自定义文件名,区分同一帖子下的不同边车内容
            filename_prefix = f"{post.date_utc.strftime('%Y-%m-%d_%H-%M-%S')}_{post.shortcode}_{idx}"
            if node.is_video:
                # 手动传入主Post的date_utc属性,补充SidecarNode缺失的字段
                self.loader.download_pic(filename_prefix, node.video_url, post.date_utc)
            else:
                self.loader.download_pic(filename_prefix, node.display_url, post.date_utc)
        return

    # 非边车帖子保留原有下载逻辑
    self.loader.download_post(post, source)

边车内容筛选需求实现

将你已实现的筛选函数作为filter_func参数传入即可,返回False时仅跳过当前不匹配的边车内容,会继续下载后续节点,无需依赖posts_download_loop的回调逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 07:57:03