获取在Instagram上使用Python发表评论或点赞的用户列表

2022-03-22 00:00:00 python instagram instaloader

问题描述

我在Python中发现了Instaloaderlib,它允许擦除Instagram配置文件。这很好,但是我找不到在Instagram上评论或点赞帖子的用户列表。

我翻遍了所有的文档,但我找不到答案。这是文档:https://instaloader.github.io/as-module.html

这是我拥有的代码:

import instaloader

L = instaloader.Instaloader() #nalazenje stvari sa instagrama

profile = instaloader.Profile.from_username(L.context, 'jlo') #daj mi pratioce od datog user-a
print(profile.get_posts())

for post in profile.get_posts():

    post_likes = post.get_likes()
    post_comments = post.get_comments()

    print(post_likes)  # post_likes object
    print(post_comments) # # post_comments object

    # post_likes.name  post_likes.username  post_likes.user    DOES NOT WORK
    # post_comments.name  post_comments.username  post_comments.user    DOES NOT WORK

解决方案

get_likes()生成一个生成器来迭代喜欢帖子的帐户的配置文件。

get_comments()会生成一个命名元组,其中owner是发帖者的帐户。因此,代码的有效实现如下所示:

import instaloader

L = instaloader.Instaloader() #nalazenje stvari sa instagrama

profile = instaloader.Profile.from_username(L.context, 'jlo') #daj mi pratioce od datog user-a
print(profile.get_posts())

for post in profile.get_posts():

    post_likes = post.get_likes()
    post_comments = post.get_comments()

    print(post_likes)  # post_likes object
    print(post_comments) # # post_comments object

    # Iterate over all likes of the post. A Profile instance of each likee is yielded.
    for likee in post_likes:
        print(likee.username)

    # Iterate over all comments of the post.
    # Each comment is represented by a PostComment namedtuple with fields 
    # text (string), created_at (datetime), id (int), owner (Profile) 
    # and answers (~typing.Iterator[PostCommentAnswer]) if available.
    for comment in post_comments:
        print(comment.owner.username)

相关文章