如何使用python請求傳遞csrftoken
更新時間:2023年08月17日 14:14:17 作者:Yicsr
這篇文章主要介紹了如何使用python請求傳遞csrftoken問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
python請求傳遞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)總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
詳解Python+Pyecharts實現(xiàn)漏斗圖的繪制
漏斗圖是一個簡單的散點圖,反映研究在一定樣本量或精確性下單個研究的干預效應估計值。本文將用Python Pyecharts實現(xiàn)漏斗圖的繪制,需要的可以參考一下2022-06-06
selenium獲取元素定位的方法總結(動態(tài)獲取元素)
要想操作一個元素,首先應該識別這個元素,人有各種的特征(屬性),可以通過其特征找到人,同理,界面的某個元素會有各種的特征(屬性),可以通過這個屬性找到這對象,本文給大家介紹了python?selenium獲取元素定位的8種方法,需要的朋友可以參考下2024-02-02
python 使用socket傳輸圖片視頻等文件的實現(xiàn)方式
這篇文章主要介紹了python 使用socket傳輸圖片視頻等文件的實現(xiàn)方式,本文給出了實例代碼,需要的朋友可以參考下2019-08-08
python生產(chǎn)環(huán)境禁用assert斷言的方法
斷言就是世界結果與期望結果去對比,符合預期的測試就是pass,不符合預期的測試就是failed,下面這篇文章主要給大家介紹了關于python生產(chǎn)環(huán)境禁用assert斷言的相關資料,需要的朋友可以參考下2022-06-06
Python實現(xiàn)基于Fasttext的商品評論數(shù)據(jù)分類的操作流程
這篇文章主要介紹了Python實現(xiàn)基于Fasttext的商品評論數(shù)據(jù)分類,今天使用的fasttext更像是一個集成的庫,把向量化和分類一起做掉了,這個對于使用層面來講就更方便了一些,需要的朋友可以參考下2022-06-06
Python真題案例之小學算術?階乘精確值?孿生素數(shù)?6174問題詳解
這篇文章主要介紹了python實操案例練習,本文給大家分享的案例中主要任務有小學生算術、階乘的精確值、孿生素數(shù)、6174問題,需要的小伙伴可以參考一下2022-03-03
Python+OpenCV實戰(zhàn)之拖拽虛擬方塊的實現(xiàn)
這篇文章主要介紹了如何利用Python+OpenCV實現(xiàn)拖拽虛擬方塊的效果,即根據(jù)手指坐標位置和矩形的坐標位置,判斷手指點是否在矩形上,如果在則矩形跟隨手指移動,感興趣的可以了解一下2022-08-08

