使用Instaloader时如何批量导入账号列表,无需逐个手动输入账号
批量抓取Instagram账号内容修改方案
问题分析
原有代码的下载帖子逻辑写在了遍历账号的循环之外,只会生效于遍历到的最后一个账号,调整逻辑后即可支持多账号批量爬取。
修改后完整代码
from instaloader import Instaloader, Profile import instaloader from instaloader.structures import Post # 这里直接填入所有需要抓取的账号名称即可 list_of_profile = ['profile1', 'profile2', 'profile3'] # 定义每个账号需要抓取的高赞帖子数量 quant = 3 for list_element in list_of_profile: L = Instaloader() profile = Profile.from_username(L.context, list_element) # 按点赞数倒序排序帖子 posts_sorted_by_likes = sorted(profile.get_posts(), key=lambda post: post.likes, reverse=True) # 下载前quant篇帖子,若帖子总数不足则有多少下多少 for post in posts_sorted_by_likes[:quant]: L.download_post(post, list_element)
改动说明
- 直接在
list_of_profile列表中填入所有需要爬取的Instagram账号ID即可,多个账号用英文逗号分隔,每个账号用英文引号包裹 - 把下载帖子的循环缩进放进了账号遍历循环内部,保证每个账号都会执行下载逻辑
- 用切片
[:quant]替代原有按索引取数的写法,避免账号帖子数不足设定值时报索引溢出错误
内容的提问来源于stack exchange,提问作者olamundo97
相关产品推荐
相关产品推荐

