进阶用法
自动化与定时任务
定期自动备份 Instagram 内容
🤖 自动化与定时任务
增量备份脚本
#!/bin/bash
# ig-backup.sh - Instagram 增量备份脚本
USERNAME="YOUR_USERNAME"
TARGETS=("user1" "user2" "user3")
DOWNLOAD_DIR="/path/to/instagram-backup"
cd "$DOWNLOAD_DIR"
for target in "${TARGETS[@]}"; do
echo "正在下载: $target"
instaloader --login "$USERNAME" \
--fast-update \
--no-metadata-json \
"$target"
sleep 30 # 每个用户间隔 30 秒
done
echo "备份完成: $(date)"# 添加到 crontab(每天早上 6 点执行)
0 6 * * * /path/to/ig-backup.sh >> /var/log/ig-backup.log 2>&1# ig-backup.ps1 - Instagram 增量备份脚本
$Username = "YOUR_USERNAME"
$Targets = @("user1", "user2", "user3")
$DownloadDir = "C:\Instagram-Backup"
Set-Location $DownloadDir
foreach ($target in $Targets) {
Write-Host "正在下载: $target"
instaloader --login $Username `
--fast-update `
--no-metadata-json `
$target
Start-Sleep -Seconds 30
}
Write-Host "备份完成: $(Get-Date)"# 添加到任务计划程序
$action = New-ScheduledTaskAction -Execute "powershell" `
-Argument "-File C:\scripts\ig-backup.ps1"
$trigger = New-ScheduledTaskTrigger -Daily -At "6:00AM"
Register-ScheduledTask -TaskName "ig-backup" `
-Action $action -Trigger $triggerStories 定时保存
Stories 只存在 24 小时,需要更频繁地检查:
#!/bin/bash
# ig-stories.sh - 每 6 小时保存 Stories
USERNAME="YOUR_USERNAME"
cd /path/to/stories-backup
instaloader --login "$USERNAME" \
--stories \
--no-posts \
user1 user2 user3# 每 6 小时执行一次
0 */6 * * * /path/to/ig-stories.shPython 自动化脚本
import instaloader
import time
import logging
from itertools import islice
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(message)s',
handlers=[
logging.FileHandler('ig-backup.log'),
logging.StreamHandler()
]
)
def backup_profiles(username: str, targets: list[str], max_per_user: int = 50):
L = instaloader.Instaloader(
download_video_thumbnails=False,
compress_json=False,
save_metadata=False,
)
L.load_session_from_file(username)
for target in targets:
logging.info(f"开始下载: {target}")
try:
profile = instaloader.Profile.from_username(L.context, target)
count = 0
for post in islice(profile.get_posts(), max_per_user):
if not L.download_post(post, target=profile.username):
logging.info(f" {target}: 遇到已下载帖子,跳过")
break
count += 1
time.sleep(2)
logging.info(f" {target}: 下载了 {count} 个帖子")
except Exception as e:
logging.error(f" {target}: 下载失败 - {e}")
time.sleep(30) # 用户间隔
if __name__ == "__main__":
backup_profiles(
username="YOUR_USERNAME",
targets=["user1", "user2", "user3"],
max_per_user=30,
)结合 --fast-update 和定时任务,可以实现 Instagram 内容的自动持续备份。