Python请求使用不同于预期的instagram链接

2024-10-02 16:27:35 发布

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

我正在制作一个脚本来检查Instagram上用户名的可用性。我在这方面遇到了很多问题,但我发现我的代码不是问题所在(据我所知),但是requests的链接将与我告诉它的链接不同。以下是发送请求的代码部分:

self.account_url=("https://www.instagram.com/" + self.usernameToTest + "/?__a=1/")
print(self.account_url)
r = requests.get(self.account_url)
print(r.url)
print(r.history)
print(r.status_code)
if r.status_code == 200:
    print("[" + self.usernameToTest + " is taken.]")
else:
    if r.status_code == 404:
        print("[" + self.usernameToTest + " is AVAILABLE!]")
    else:
        print("ERROR: Error checking username: " + self.usernameToTest)

总之,变量self.usernameToTest是正在测试的用户名,因此如果用户名是testusername,变量self.account_url将是:“https://www.instagram.com/testusername/?__a=1

/?__a=1的链接是我用来确定帐户是否被占用的,因为如果被占用,它将返回404。我遇到的问题是,当我运行它时,请求似乎得到一个状态代码302,然后每次都重定向到链接https://www.instagram.com/accounts/login/。这将给出状态200,因此它表示每次都使用用户名。运行时的输出示例:

https://www.instagram.com/koakodskodakwoaksodkwa/?__a=1/
https://www.instagram.com/accounts/login/
[<Response [302]>]
200
[koakodskodakwoaksodkwa is taken.]

我不明白为什么它会这样做,因为当我自己将链接粘贴到chrome中时,它不会重定向,只会给我状态为404的站点https://www.instagram.com/koakodskodakwoaksodkwa/?__a=1/。 我认为这可能与我的互联网或其他原因有关,因为起初它不工作,但我打开了一个vpn,当我关闭它时,它开始成功工作,但后来不知何故又停止了工作。而且,当我把代码发送给其他人时,它也为他们工作。有人知道为什么会这样吗?我在编码方面缺乏经验,对python上的请求也不太了解,所以我不知道是我做错了什么,是我的互联网上的问题,还是Instagram上的问题,但我知道这不是代码,因为它在一段时间内适用于其他人和我自己


Tags: 代码httpsselfcomurlis链接www