通过这个网站登录的正确方法是什么?在

我想使用requests模块登录here。在

到目前为止,我已经做到了:#!/usr/bin/env python

# -*- coding: utf-8 -*-

from PyQt5 import QtCore, QtGui, QtWidgets

import requests

from utils.user_agents import get_random_user_agent

class StudentsWebSession(QtCore.QThread):

def __init__(self, url, _url=None, username=None, password=None, payload=None):

QtCore.QThread.__init__(self)

self.session = requests.Session()

self.ua = get_random_user_agent('desktop')

self.headers_get_one = {

'host': 'studentsweb.teimes.gr',

'user-agent': self.ua,

'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',

'accept-language': 'en-US,en;q=0.5',

'accept-encoding': 'gzip, deflate, br',

'connection': 'keep-alive',

'upgrade-insecure-requests': '1'

}

self.headers_post_one = {

'host': 'studentsweb.teimes.gr',

'user-agent': self.ua,

'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',

'accept-language': 'en-US,en;q=0.5',

'accept-encoding': 'gzip, deflate, br',

'referer': 'https://studentsweb.teimes.gr/unistudent/login.asp',

'content-type': 'application/x-www-form-urlencoded',

'connection': 'keep-alive',

'upgrade-insecure-requests': '1'

}

self.headers_get_two = {

'host': 'studentsweb.teimes.gr',

'user-agent': self.ua,

'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',

'accept-language': 'en-US,en;q=0.5',

'accept-encoding': 'gzip, deflate, br',

'referer': 'https://studentsweb.teimes.gr/unistudent/login.asp',

'connection': 'keep-alive',

'upgrade-insecure-requests': '1'

}

self.url = url

self._url = _url

self.username = username

self.password = password

self.payload = payload

def __del__(self):

self.wait()

def get(self):

with self.session as s:

if not self.payload:

self.payload = {

'userName': self.username,

'pwd': self.password,

'submit1': 'Login',

'loginTrue': 'login'

}

r = s.get(self.url, headers=self.headers_get_one,

params={'lang': 'en-us'})

print(r.content.decode('cp1253'))

#print(r.url)

r = s.post(self.url, headers=self.headers_post_one,

data=self.payload)

#print(r.content.decode('cp1253'))

#print(r.url)

#r = s.get(self._url, headers=self.headers_get_two)

#print(r.content.decode('cp1253'))

#print(r.url)

def run(self):

self.get()

我这样初始化它:

^{pr2}$

其中db是一个包含所有所需信息的字典。在

结果,我收到了一个标题如下的HTML文档(409http代码)

409 Conflict

我认为您必须执行一个简单的GET请求来存储cookies,然后使用所有必需的有效负载、头和cookies执行POST请求。然后,执行GET请求以接收所需的结果。在

以下是上述要求的证明:

我不喜欢使用selenium、headless浏览器以及非线程安全库

如果你需要更多的信息,请不要犹豫去问他们。在

python requests.get每次都要初始化_如何在Python(GET/POST)409confi中使用“requests”成功登录...相关推荐

  1. python包含多个元组的元组_如何在python中将多个”列出的”元组连接成一个元组?...

    在python中,关于这个问题的答案很少,如何将一个元组列表连接到一个列表中?,如何在python中合并两个元组?,如何在python中合并任意数量的元组?所有的答案都引用了元组列表,所以提供的解决方 ...

  2. python二维数组初始化_如何在Python中初始化二维数组?

    这种方式比嵌套列表推导更快[x[:] for x in [[foo] * 10] * 10] # for immutable foo! 这里有一些python3时序,适用于小型和大型列表$python ...

  3. python创建长度为20的列表_如何在python中创建固定大小列表?

    小编典典 (tl;博士:您问题的确切答案是numpy.empty或numpy.empty_like,但您可能不在乎,可以摆脱使用的困扰myList = [None]*10000.) 简单的方法 您可以 ...

  4. python类的动态方法是什么_如何在python中为类动态创建类方法

    如果我将一个小python程序定义为class a(): def _func(self): return "asdf" # Not sure what to resplace __ ...

  5. python将小时数换成分钟_如何在Python中将datetime.timedelta转换为分钟、小时?

    没有用于timedelta对象的内置格式化程序,但您自己很容易做到:days, seconds = duration.days, duration.seconds hours = days * 24 ...

  6. python getopt参数参数自动补全_如何在Python中使用getopt / OPTARG?如果给出过多的参数(9),如何转移参数?...

    How to use getopt/optarg in Python? 解决方案 This is an example of how I do it, I usually use the same b ...

  7. python怎么判断输入的是不是数字_如何在PYTHON里判断字符串是否为数字

    1 打开JUPYTER NOTEBOOK,新建一个空白的PY文档. 2 str1 = "888" print(str1.isdecimal()) print(str1.isdigi ...

  8. python对文件每行数据计算_如何在python中对pandas数据帧的每一行进行计算?

    我是python的新手,我正在尝试将我在R中创建的函数转换为python,R函数描述如下: 从我的阅读来看,在python中实现这一点的最佳方法是使用一个for循环,该循环采用以下形式for line ...

  9. python列表转化为元组、集合_如何在Python中将元组列表更改为集合?

    我在Python中创建了一个函数,它返回抛出2个骰子的所有可能结果的列表. 元组列表:[(1,1),(1,2),-,(6,6)].在 然后我写了一个函数来找出两个值之和为偶数的所有元素(a),另一个函 ...

最新文章

  1. LeetCode 22. Generate Parentheses--Python 解法--广度优先、深度优先解法
  2. 解析|2G~5G与未来天线技术!
  3. Linux网络相关知识
  4. mongodb连接失败_深入浅出mongodb(一)
  5. 自动化运维 python 批量监控服务器_1、python自动化运维——监测服务器状态
  6. QueryDict对象
  7. [WPF Bug清单]之(4)——点击RadioButton的空白没有反应
  8. 软件评测-信息安全-应用安全-资源控制-用户登录限制(上)
  9. Spring之容中的工厂Bean
  10. 点云数据增强及预处理
  11. redis 默认过期策略_redis 过期策略
  12. python网页提交表单_python模拟实现自动填写网页表单源码
  13. 004Spring事务001JdbcTemplate
  14. apfs扩容_MacBook Pro 2018 评测:这台价值一万四的电脑到底值不值得买?
  15. 代码实现-pack_padded_sequence()与pad_packed_sequence()
  16. linux 硬盘合并使用方法,Linux硬盘合并的实现代码
  17. iptables匹配statistic
  18. amd为什么还用针脚_为什么AMD的CPU不采用LGA封装技术?还在继续用针脚?
  19. react服务端渲染技术
  20. Python数据分析19——matplotlib可视化(一)之线形图

热门文章

  1. android movie 资源释放,Android 资讯类App项目实战 第四章 电影模块
  2. 【目录】王爽《汇编语言》
  3. PL/SQL 入门学习(一)
  4. 博通Broadcom SDK源码学习与开发8——内存与参数管理
  5. LINUX基础 第四次课 10月15日
  6. Web.config详解+asp.net优化(1)
  7. ldpc译码讲解_LDPC编译码基本原理
  8. 打牌软件可以控制吗_手机打牌软件到底有没有外挂?
  9. 圆锥形怎么画_素描教程-圆锥体的绘画步骤
  10. 全球及中国带棱镜的全站仪行业发展动态及十四五运营前景咨询报告2022-2027年