如何解决请求 csrf-token 不起作用 - Instagram lgin
自从我发现有关请求后,我尝试登录 Instagram。 我发现了一篇关于它的有趣文章:
Python Instagram login using requests
- 第 41 行,在 test.login("MyInstagramName","MyInstagramPassword")
- 第 32 行,在登录中 session.headers.update({'X-CSrftoken': login.cookies['csrftoken']})
- 第 328 行,在 getitem 中 返回 self._find_no_duplicates(name)
- 第 399 行,在 _find_no_duplicates 中 raise KeyError('name=%r,domain=%r,path=%r' % (name,domain,path)) KeyError: "name='csrftoken',domain=None,path=None"
看起来“self._find_no_duplicates(name)”有问题,触发了“KeyError('name=%r,do...”。
是因为 csrf-token 吗?
import requests
import datetime
class instagram:
user_agent = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/79.0.3945.79 Safari/537.36'
def login(self,username,password):
"""Login to Instagram"""
time = str(int(datetime.datetime.Now().timestamp()))
enc_password = f"#PWD_INSTAGRAM_broWSER:0:{time}:{password}"
session = requests.Session()
# set a cookie that signals Instagram the "Accept cookie" banner was closed
session.cookies.set("ig_cb","2")
session.headers.update({'user-agent': self.user_agent})
session.headers.update({'Referer': 'https://www.instagram.com'})
res = session.get('https://www.instagram.com')
csrftoken = None
for key in res.cookies.keys():
if key == 'csrftoken':
csrftoken = session.cookies['csrftoken']
session.headers.update({'X-CSrftoken': csrftoken})
login_data = {'username': username,'enc_password': enc_password}
login = session.post('https://www.instagram.com/accounts/login/ajax/',data=login_data,allow_redirects=True)
session.headers.update({'X-CSrftoken': login.cookies['csrftoken']})
cookies = login.cookies
print(login.text)
session.close()
if __name__ == "__main__":
test = instagram()
test.login("InstaUsername","InstaPassword")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。