使用python请求登录不适用于pythonanywhere.com

时间:2018-09-30 05:24:51

标签: python-3.x login python-requests csrf pythonanywhere

我正在尝试登录网站pythonanywhere.com

<?php
...
$display = 0;
$resulta= mysqli_query($con,"SELECT * FROM seat WHERE SeatStatus = 1");
if ($resulta) $display = mysqli_num_rows($resulta);
//$con->query($display);  unnecessary code
$disable = ($display >= 1)? 'disabled="disabled"': '';

?>

但是我得到import requests url='https://www.pythonanywhere.com/login' s = requests.session() values = { 'auth-username': 'username', 'auth-password': 'password'} headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'} u = s.post(url, data=values, headers=headers) ,Csrf验证失败。如何登录该网站?

1 个答案:

答案 0 :(得分:2)

您需要先get页。这样您才能获得crsftokensessionid。记住要设置Referer=https://www.pythonanywhere.com/login/

import requests

url='https://www.pythonanywhere.com/login'

s = requests.session()
s.get(url)

values = {
    'auth-username': 'username', 
    'auth-password': 'password',
    "csrfmiddlewaretoken" : s.cookies.get("csrftoken"),
    "login_view-current_step" : "auth"
    }

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.92 Safari/537.36',
            'Referer': 'https://www.pythonanywhere.com/login/'}

u = s.post(url, data=values, headers=headers)
print(u.content)
相关问题