首页 > 解决方案 > Python 请求请求与预期不同的 instagram 链接

问题描述

我正在制作一个脚本来检查 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 中时,它不会重定向,只会给我https://www.instagram.com/koakodskodakwoaksodkwa/?__a=1/状态为 404 的网站。我认为这可能与我的互联网或其他原因有关出于某种原因,它一开始没有工作,但我打开了一个 vpn,当我把它关掉时,它开始成功地工作,但后来不知从何而来又停止工作了。此外,当我将代码发送给其他人时,它也适用于他们。有谁知道为什么会这样?我在编码方面有点缺乏经验,对 python 上的请求不太了解,所以我不知道是我做错了什么,是我的互联网的问题,还是 Instagram 的问题,但我知道它不是代码因为它在一段时间内对其他人和我自己都有效。

标签: pythonpython-requestsinstagramscreen-scraping

解决方案


推荐阅读