instaloader验证登录以确保使用python模块登录

2024-06-16 08:52:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用instaloader收集有关我instagram帐户的一些数据

我写了一个非常基本的循环来吸引我的追随者,效果非常好:

 # Get instance
import instaloader
L = instaloader.Instaloader()

# Login or load session
L.login("myuser", "mypass")        # (login)
#L.load_session_from_file(myaccount)


# Obtain profile metadata
profile = instaloader.Profile.from_username(L.context, "testaccount")

# Print list of followees

follow_list = []
count=0
file = open("output.txt","a+")
for followee in profile.get_followers():
    username = followee.username , followee.external_url
    file.write(username + "\n")
    print(username)
file.close()

我在一个随机的有2000个追随者的大帐户上尝试了它,只是想看看它相对于我的测试帐户的性能,我的测试帐户有10个追随者来保持它的简单

我发现了错误

Requests within last 10/11/20/22/30/60 minutes grouped by type:
 *                            other:    1    1    1    1    1    1
Instagram responded with HTTP error "429 - Too Many Requests". Please
do not run multiple instances of Instaloader in parallel or within
short sequence. Also, do not use any Instagram App while Instaloader
is running.
The request will be retried in 666 seconds, at 09:18.

我在instaloader的常见问题解答和疑难解答部分看到了这一点,它似乎表明,如果您未登录,这种情况更常见,因此我开始怀疑我的登录是否真的有效

我用命令行接口创建了一个会话文件

instaloader -login testuser

它工作并创建了一个会话文件

dev@cab:~/test2 $ ls -la ~/.config/instaloader/session-testuser 

我更新了示例代码

 # Get instance
import instaloader
L = instaloader.Instaloader()

# Login or load session
#L.login("myuser", "mypass")        # (login)
L.load_session_from_file(testuser)


# Obtain profile metadata
profile = instaloader.Profile.from_username(L.context, "testaccount")

# Print list of followees

follow_list = []
count=0
file = open("output.txt","a+")
for followee in profile.get_followers():
    username = followee.username , followee.external_url
    file.write(username + "\n")
    print(username)
file.close()

然而,当我尝试脚本时,我得到了错误

Traceback (most recent call last):
  File "gram2.py", line 7, in <module>
    L.load_session_from_file(testuser)
NameError: name 'testuser' is not defined

根据我所阅读的内容,但无法确定文档中的内容,但在网上做了很好的示例,我不需要指定会话文件的路径,只需要指定用户名,它应该自动在$user/.conf/instaloader中查找会话文件,所以我不确定会话文件为什么不工作,但这让我更加相信,我最初担心的登录不起作用是真的

如何调试/确认登录是否正常工作


Tags: 文件infromsessionusernameloginload帐户
2条回答

错误指向L.load_session_from_file(testuser),您必须将用户名作为字符串传递,因此请尝试L.load_session_from_file("testuser")

您需要在将testuser作为变量传递时定义它,以便将其打包到:"testuser"中进行修复

希望能解决你的问题

相关问题 更多 >