如何使用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)

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python笔记(2)

    python笔记(2)

    python笔记,参考上一篇文章大家继续
    2012-10-10
  • 详解Python+Pyecharts实现漏斗图的绘制

    详解Python+Pyecharts实现漏斗图的绘制

    漏斗图是一个简单的散点图,反映研究在一定样本量或精确性下单个研究的干预效应估计值。本文将用Python Pyecharts实现漏斗图的绘制,需要的可以参考一下
    2022-06-06
  • 简单介绍Python中的floor()方法

    简单介绍Python中的floor()方法

    这篇文章主要介绍了Python中的floor()方法,是Python入门的基础知识,需要的朋友可以参考下
    2015-05-05
  • selenium获取元素定位的方法总结(动态获取元素)

    selenium获取元素定位的方法总结(动态获取元素)

    要想操作一个元素,首先应该识别这个元素,人有各种的特征(属性),可以通过其特征找到人,同理,界面的某个元素会有各种的特征(属性),可以通过这个属性找到这对象,本文给大家介绍了python selenium获取元素定位的8种方法,需要的朋友可以参考下
    2024-02-02
  • python数据容器总结示例详解

    python数据容器总结示例详解

    本文主要介绍了Python中的数据容器,包括列表、元组、字符串、集合和字典,每种数据容器都有其独特的定义、操作方法和特点,感兴趣的朋友跟随小编一起看看吧
    2025-11-11
  • python 使用socket传输图片视频等文件的实现方式

    python 使用socket传输图片视频等文件的实现方式

    这篇文章主要介绍了python 使用socket传输图片视频等文件的实现方式,本文给出了实例代码,需要的朋友可以参考下
    2019-08-08
  • python生产环境禁用assert断言的方法

    python生产环境禁用assert断言的方法

    断言就是世界结果与期望结果去对比,符合预期的测试就是pass,不符合预期的测试就是failed,下面这篇文章主要给大家介绍了关于python生产环境禁用assert断言的相关资料,需要的朋友可以参考下
    2022-06-06
  • Python实现基于Fasttext的商品评论数据分类的操作流程

    Python实现基于Fasttext的商品评论数据分类的操作流程

    这篇文章主要介绍了Python实现基于Fasttext的商品评论数据分类,今天使用的fasttext更像是一个集成的库,把向量化和分类一起做掉了,这个对于使用层面来讲就更方便了一些,需要的朋友可以参考下
    2022-06-06
  • Python真题案例之小学算术 阶乘精确值 孪生素数 6174问题详解

    Python真题案例之小学算术 阶乘精确值 孪生素数 6174问题详解

    这篇文章主要介绍了python实操案例练习,本文给大家分享的案例中主要任务有小学生算术、阶乘的精确值、孪生素数、6174问题,需要的小伙伴可以参考一下
    2022-03-03
  • Python+OpenCV实战之拖拽虚拟方块的实现

    Python+OpenCV实战之拖拽虚拟方块的实现

    这篇文章主要介绍了如何利用Python+OpenCV实现拖拽虚拟方块的效果,即根据手指坐标位置和矩形的坐标位置,判断手指点是否在矩形上,如果在则矩形跟随手指移动,感兴趣的可以了解一下
    2022-08-08

最新评论