如何使用python請(qǐng)求傳遞csrftoken
更新時(shí)間:2023年08月17日 14:14:17 作者:Yicsr
這篇文章主要介紹了如何使用python請(qǐng)求傳遞csrftoken問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
python請(qǐng)求傳遞csrftoken
如何通過(guò)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)文章
opencv+python識(shí)別七段數(shù)碼顯示器的數(shù)字(數(shù)字識(shí)別)
本文主要介紹了opencv+python識(shí)別七段數(shù)碼顯示器的數(shù)字(數(shù)字識(shí)別),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01python pickle存儲(chǔ)、讀取大數(shù)據(jù)量列表、字典數(shù)據(jù)的方法
pickle模塊實(shí)現(xiàn)了用于序列化和反序列化python對(duì)象結(jié)構(gòu)的二進(jìn)制協(xié)議。這篇文章主要介紹了python pickle存儲(chǔ)、讀取大數(shù)據(jù)量列表、字典的數(shù)據(jù),需要的朋友可以參考下2019-07-07python中tkinter的應(yīng)用:修改字體的實(shí)例講解
今天小編就為大家分享一篇python中tkinter的應(yīng)用:修改字體的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07Pandas中數(shù)據(jù)離散化的實(shí)現(xiàn)
Pandas中數(shù)據(jù)離散化是將連續(xù)變量轉(zhuǎn)換為離散類別的過(guò)程,本文就來(lái)介紹一下Pandas中數(shù)據(jù)離散化的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-12-12Python 中的Selenium異常處理實(shí)例代碼
本文通過(guò)實(shí)例代碼給大家介紹了Python 中的Selenium異常處理的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2018-05-05