我“编写”了这段代码,该代码基本上是从个人资料中扫描所有帖子,然后下载5个最喜欢的帖子。
from itertools import islice
from math import ceil
from instaloader import Instaloader, Profile
PROFILE = "profile_name"
L = Instaloader(save_metadata=True, compress_json=False, download_video_thumbnails=False, download_comments=False, post_metadata_txt_pattern="{likes}")
profile = Profile.from_username(L.context, PROFILE)
posts_sorted_by_likes = sorted(profile.get_posts(), key=lambda post: post.likes, reverse=True)
for post in islice(posts_sorted_by_likes, ceil(5)):
L.download_post(post, PROFILE)
profile_list = ['profile1', 'profile2', 'profile3', ...]
,但我不知道如何在代码中实现它。如果问题太简单了,请问我,我对Python还是陌生的。
响应数字2:
[如果您已经知道要从哪个配置文件下载(即,您提到了profile_list = ['profile1', 'profile2', 'profile3', ...]
),则可以创建Profile
对象的列表。您可以使用for
循环执行此操作,也可以使用列表理解功能以更紧凑的方式执行此操作:
For循环方法:
profile_objects = []
for p in profile_list:
profile_objects.append(Profile.from_username(L.context, p))
列表理解:
profile_objects = [Profile.from_username(L.context, p) for p in profile_list]
此后,您应该遍历Profile
对象列表,然后遍历其帖子:
for profile in profile_objects:
for post in islice(posts_sorted_by_likes, 5):
L.download_post(post, PROFILE)