如何使用python請(qǐng)求傳遞csrftoken
python請(qǐng)求傳遞csrftoken
如何通過python模塊Requests傳遞csrftoken?
參考代碼
import requests
from bs4 import BeautifulSoup as bs
import lxml
# Page header
head= { 'Content-Type':'application/x-www-form-urlencoded',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
}
# Start Page
url = 'https://www.die-staemme.de/'
# Login URL
login_url = 'https://www.die-staemme.de/page/auth'
# URL behind the login page
url2= 'https://de159.die-staemme.de/game.php?screen=overview&intro'
# Open up a session
s = requests.session()
# Open the login page
r = s.get(url)
# Get the csrf-token from meta tag
soup = bs(r.text,'lxml')
csrf_token = soup.select_one('meta[name="csrf-token"]')['content']
# Get the page cookie
cookie = r.cookies
# Set CSRF-Token
head['X-CSRF-Token'] = csrf_token
head['X-Requested-With'] = 'XMLHttpRequest'
# Build the login payload
payload = {
'username': '', #<-- your username
'password': '', #<-- your password
'remember':'1'
}
# Try to login to the page
r = s.post(login_url, cookies=cookie, data=payload, headers=head)
# Try to get a page behind the login page
r = s.get(url2)
# Check if login was successful, if so there have to be an element with the id menu_row2
soup = bs(r.text, 'lxml')
element = soup.select('#menu_row2')
print(element)import sys import requests URL = 'https://portal.bitcasa.com/login' client = requests.session() # Retrieve the CSRF token first client.get(URL) # sets cookie if 'csrftoken' in client.cookies: # Django 1.6 and up csrftoken = client.cookies['csrftoken'] else: # older versions csrftoken = client.cookies['csrf'] login_data = dict(username=EMAIL, password=PASSWORD, csrfmiddlewaretoken=csrftoken, next='/') r = client.post(URL, data=login_data, headers=dict(Referer=URL))
import sys import django from django.middleware.csrf import CsrfViewMiddleware, get_token from django.test import Client django.setup() csrf_client = Client(enforce_csrf_checks=True) URL = 'http://127.0.0.1/auth/login' EMAIL= 'test-user@test.com' PASSWORD= 'XXXX' # Retrieve the CSRF token first csrf_client.get(URL) # sets cookie csrftoken = csrf_client.cookies['csrftoken'] login_data = dict(username=EMAIL, password=PASSWORD, csrfmiddlewaretoken=csrftoken.value, next='/') r = csrf_client.post(URL, data=login_data, headers=dict(Referer=URL))
import requests
from bs4 import BeautifulSoup as bs
import lxml
# Page header
head= { 'Content-Type':'application/x-www-form-urlencoded',
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36'
}
# Start Page
url = 'https://www.die-staemme.de/'
# Login URL
login_url = 'https://www.die-staemme.de/page/auth'
# URL behind the login page
url2= 'https://de159.die-staemme.de/game.php?screen=overview&intro'
# Open up a session
s = requests.session()
# Open the login page
r = s.get(url)
# Get the csrf-token from meta tag
soup = bs(r.text,'lxml')
csrf_token = soup.select_one('meta[name="csrf-token"]')['content']
# Get the page cookie
cookie = r.cookies
# Set CSRF-Token
head['X-CSRF-Token'] = csrf_token
head['X-Requested-With'] = 'XMLHttpRequest'
# Build the login payload
payload = {
'username': '', #<-- your username
'password': '', #<-- your password
'remember':'1'
}
# Try to login to the page
r = s.post(login_url, cookies=cookie, data=payload, headers=head)
# Try to get a page behind the login page
r = s.get(url2)
# Check if login was successful, if so there have to be an element with the id menu_row2
soup = bs(r.text, 'lxml')
element = soup.select('#menu_row2')
print(element)總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Python+Pyecharts實(shí)現(xiàn)漏斗圖的繪制
漏斗圖是一個(gè)簡(jiǎn)單的散點(diǎn)圖,反映研究在一定樣本量或精確性下單個(gè)研究的干預(yù)效應(yīng)估計(jì)值。本文將用Python Pyecharts實(shí)現(xiàn)漏斗圖的繪制,需要的可以參考一下2022-06-06
selenium獲取元素定位的方法總結(jié)(動(dòng)態(tài)獲取元素)
要想操作一個(gè)元素,首先應(yīng)該識(shí)別這個(gè)元素,人有各種的特征(屬性),可以通過其特征找到人,同理,界面的某個(gè)元素會(huì)有各種的特征(屬性),可以通過這個(gè)屬性找到這對(duì)象,本文給大家介紹了python?selenium獲取元素定位的8種方法,需要的朋友可以參考下2024-02-02
python數(shù)據(jù)容器總結(jié)示例詳解
本文主要介紹了Python中的數(shù)據(jù)容器,包括列表、元組、字符串、集合和字典,每種數(shù)據(jù)容器都有其獨(dú)特的定義、操作方法和特點(diǎn),感興趣的朋友跟隨小編一起看看吧2025-11-11
python 使用socket傳輸圖片視頻等文件的實(shí)現(xiàn)方式
這篇文章主要介紹了python 使用socket傳輸圖片視頻等文件的實(shí)現(xiàn)方式,本文給出了實(shí)例代碼,需要的朋友可以參考下2019-08-08
python生產(chǎn)環(huán)境禁用assert斷言的方法
斷言就是世界結(jié)果與期望結(jié)果去對(duì)比,符合預(yù)期的測(cè)試就是pass,不符合預(yù)期的測(cè)試就是failed,下面這篇文章主要給大家介紹了關(guān)于python生產(chǎn)環(huán)境禁用assert斷言的相關(guān)資料,需要的朋友可以參考下2022-06-06
Python實(shí)現(xiàn)基于Fasttext的商品評(píng)論數(shù)據(jù)分類的操作流程
這篇文章主要介紹了Python實(shí)現(xiàn)基于Fasttext的商品評(píng)論數(shù)據(jù)分類,今天使用的fasttext更像是一個(gè)集成的庫,把向量化和分類一起做掉了,這個(gè)對(duì)于使用層面來講就更方便了一些,需要的朋友可以參考下2022-06-06
Python真題案例之小學(xué)算術(shù)?階乘精確值?孿生素?cái)?shù)?6174問題詳解
這篇文章主要介紹了python實(shí)操案例練習(xí),本文給大家分享的案例中主要任務(wù)有小學(xué)生算術(shù)、階乘的精確值、孿生素?cái)?shù)、6174問題,需要的小伙伴可以參考一下2022-03-03
Python+OpenCV實(shí)戰(zhàn)之拖拽虛擬方塊的實(shí)現(xiàn)
這篇文章主要介紹了如何利用Python+OpenCV實(shí)現(xiàn)拖拽虛擬方塊的效果,即根據(jù)手指坐標(biāo)位置和矩形的坐標(biāo)位置,判斷手指點(diǎn)是否在矩形上,如果在則矩形跟隨手指移動(dòng),感興趣的可以了解一下2022-08-08

