如何将Instaloader获取的Instagram数据导出至CSV文件?
导出Instagram关注者数据至CSV的正确实现方法
需要获取Instagram账号strengthinsheets的关注者信息(全名、用户名、粉丝数)并导出为CSV文件,原代码能打印正确数据,但修改后的导出代码无法正常生成CSV。以下是问题分析及两种可行解决方案:
原修改代码的问题
- 循环中仅生成数据元组但未存储,后续无法调用这些数据
writer.writerows(followee)用法错误:writerows需要接收包含多行数据的可迭代对象,而非单个关注者对象- 错误导入
turtle库的pd,这是无效操作;若要使用pandas需正确导入 - 属性混淆:原代码用
followee.followees(代表该关注者账号关注的人数),若要获取粉丝数量应使用followee.followers
方案一:使用Python内置csv模块
import csv import instaloader # 初始化Instaloader并登录 loader = instaloader.Instaloader() loader.login("你的用户名", "你的密码") # 获取目标账号的Profile对象及关注者列表 profile = instaloader.Profile.from_username(loader.context, "strengthinsheets") followees = profile.get_followees() # 收集所有关注者数据(含表头) followee_data = [] followee_data.append(["全名", "用户名", "粉丝数量"]) # 遍历提取所需信息 for followee in followees: row = [followee.full_name, followee.username, followee.followers] followee_data.append(row) # 写入CSV文件 with open('followers.csv', 'w', newline='', encoding='utf-8') as file: writer = csv.writer(file) writer.writerows(followee_data)
说明:
- 先通过列表统一存储所有数据,确保后续可批量写入
- 指定
newline=''避免导出的CSV出现多余空行,encoding='utf-8'支持特殊字符显示
方案二:使用pandas的to_csv方法(适合熟悉pandas的用户)
import pandas as pd import instaloader # 初始化Instaloader并登录 loader = instaloader.Instaloader() loader.login("你的用户名", "你的密码") # 获取目标账号的Profile对象及关注者列表 profile = instaloader.Profile.from_username(loader.context, "strengthinsheets") followees = profile.get_followees() # 收集数据为字典列表 data = [] for followee in followees: data.append({ "全名": followee.full_name, "用户名": followee.username, "粉丝数量": followee.followers }) # 转为DataFrame并导出CSV df = pd.DataFrame(data) df.to_csv('followers.csv', index=False, encoding='utf-8')
说明:
- 字典列表结构更直观,便于转为pandas的DataFrame
index=False避免导出时添加多余的索引列
内容的提问来源于stack exchange,提问作者Anthony Madle
相关产品推荐
相关产品推荐

