gpt4 book ai didi

Python-请求 : website won't accept request to log in

转载 作者:可可西里 更新时间:2023-11-01 16:58:54 25 4
gpt4 key购买 nike

我正在使用 python 请求登录网站,但它不接受我的请求。

我在网站的源码里找过隐藏的input,没找到,听说可能跟加header有关,但是不知道header怎么找,不知道怎么办将它们添加到我的代码中。


session = requests.session()

login_data = {
'csrfmiddlewaretoken': 'S75hu6eF1FV6axGK8ffV5JC7mYw8Z3AbviU453U0rOQPYPu7iiBCVxRnV2XywfVh',
'username': '<my_username>',
'password': '<my_password>',
'next': '/course/2021573/french-1-145/garden/speed_review/?source_element=ms_mode&source_screen=eos_ms'
}

session.get(url)

r = session.post('https://www.memrise.com/course/2021573/french-1-145/garden/speed_review/?source_element=ms_mode&source_screen=eos_ms/login.py', login_data)

if r.status_code == 200:
res = session.get(url)
print('YES!!!')
else:
print('NOOOOOOOOOOOOOOOO')

我希望状态代码为 200,但事实并非如此——我不知道当它不接受请求时状态代码是什么。解决此问题的任何帮助将不胜感激。

最佳答案

www.memrise.com 在其登录中有 CSRF-Token 方法,因此您必须使用 BeautifulSoup 从登录页面找到 CSRF-Token 并使用 header 。

import bs4
import requests

url = 'https://www.memrise.com/login/'
session = requests.session()

response = session.get(url)
soup = bs4.BeautifulSoup(response.text, 'lxml')
csrf_token = soup.find('input', {'name': 'csrfmiddlewaretoken'}).get('value')

headers = {
'Host': 'www.memrise.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language': 'en-US,en;q=0.5',
'Accept-Encoding': 'gzip, deflate, br',
'Referer': 'https://www.memrise.com/login/',
'Content-Type': 'application/x-www-form-urlencoded',
}

login_data = {
'csrfmiddlewaretoken': csrf_token,
'username': '<my_username>',
'password': '<my_password>',
'next': '/course/2021573/french-1-145/garden/speed_review/?source_element=ms_mode&source_screen=eos_ms'
}

r = session.post(url, login_data, headers=headers)

if r.status_code == 200:
res = session.get(url)
print('YES!!!')
else:
print('NO')

关于Python-请求 : website won't accept request to log in,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58040059/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com