[英]Instagram login with python-requests, cookies error
我試圖在請求的幫助下登錄 Instagram ......我按照這個答案https://stackoverflow.com/a/65892587/13419605
這在我的筆記本電腦上很好用,但是服務器端有這個錯誤。
環境:
代碼:
import requests
import datetime
session = requests.session()
def login(session, username, password):
"""Login to Instagram"""
time = str(int(datetime.datetime.now().timestamp()))
enc_password = f"#PWD_INSTAGRAM_BROWSER:0:{time}:{password}"
# set a cookie that signals Instagram the "Accept cookie" banner was closed
session.cookies.set("ig_cb", "2")
session.headers.update({'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)\
Chrome/59.0.3071.115 Safari/537.36'})
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()
login(session, 'username', 'password')
錯誤:
Traceback (most recent call last):
File "login.py", line 38, in <module>
login(session, 'username', 'password')
File "login.py", line 30, in login
session.headers.update({'X-CSRFToken': login.cookies['csrftoken']})
File "/django/venv/lib/python3.6/site-packages/requests/cookies.py", line 328, in __getitem__
return self._find_no_duplicates(name)
File "/django/venv/lib/python3.6/site-packages/requests/cookies.py", line 399, in _find_no_duplicates
raise KeyError('name=%r, domain=%r, path=%r' % (name, domain, path))
KeyError: "name='csrftoken', domain=None, path=None"
這是因為登錄cookies中沒有csrftoken。 Instagram 阻止來自服務器的請求。 使用代理可能會有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.