使用Python的Requests模块登录ASP网站

2024-04-22

我试图从我的学校页面上抓取一些信息,但我很难通过登录。我知道有类似的线程,我花了一整天的时间阅读,但无法使其发挥作用。

这是我使用的程序(用户名和密码已更改):

import requests

payload = {'ctl00$cphmain$Loginname': 'name', 'ctl00$cphmain$TextBoxHeslo': 'password'}

page = requests.post('http://gymnaziumbma.no-ip.org:81/login.aspx', payload)
open_page = requests.get("http://gymnaziumbma.no-ip.org:81/prehled.aspx?s=44&c=prub")

#Check content
if page.text == open_page.text:
    print("Same page")
else:
    print(open_page.text)
    print("Different page!")

你能告诉我,我做错了什么吗?我是否缺少一些参数? requests 是个好方法吗?我正在尝试 robobrowser 和 BeautifulSoup,但也不起作用。我敢打赌我错过了一些非常微不足道的东西。

我使用Python 3.5


首先,你没有使用Session http://docs.python-requests.org/en/master/user/advanced/#session-objects因此,即使您的第一篇文章成功地将您登录到第二篇文章中,您也对此一无所知。其次,您缺少需要发布的数据,__视图状态生成器 and __视图状态您可以使用以下命令从源中解析它美丽汤:

from bs4 import BeautifulSoup

data = {'ctl00$cphmain$Loginname': 'name', 'ctl00$cphmain$TextBoxHeslo': 'password'}
# A Session object will persist the login cookies.
with requests.Session() as s:
    page = s.get('http://gymnaziumbma.no-ip.org:81/login.aspx')
    soup = BeautifulSoup(page.content)
    data["___VIEWSTATE"] = soup.select_one("#__VIEWSTATE")["value"]
    data["__VIEWSTATEGENERATOR"] = soup.select_one("#__VIEWSTATEGENERATOR")["value"]
    s.post('http://gymnaziumbma.no-ip.org:81/login.aspx', data=data)
    open_page = s.get("http://gymnaziumbma.no-ip.org:81/prehled.aspx?s=44&c=prub")

    #Check content
    if page.text == open_page.text:
        print("Same page")
    else:
        print(open_page.text)
        print("Different page!")

您可以查看 Chrome 开发工具中发布的所有表单数据。

上面发布的内容应该足以登录,如果没有任何您需要的值可以使用 BeautifulSoup 从登录表中解析。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用Python的Requests模块登录ASP网站 的相关文章

  • 安装后 Anaconda 提示损坏

    我刚刚安装张量流GPU创建单独的后环境按照以下指示here https github com antoniosehk keras tensorflow windows installation 但是 安装后当我关闭提示窗口并打开新航站楼弹出
  • Python 中的二进制缓冲区

    在Python中你可以使用StringIO https docs python org library struct html用于字符数据的类似文件的缓冲区 内存映射文件 https docs python org library mmap
  • NameError:名称“urllib”未定义”

    CODE import networkx as net from urllib request import urlopen def read lj friends g name fetch the friend list from Liv
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • HTTPS 代理不适用于 Python 的 requests 模块

    我对 Python 还很陌生 我一直在使用他们的 requests 模块作为 PHP 的 cURL 库的替代品 我的代码如下 import requests import json import os import urllib impor
  • Python:尝试检查有效的电话号码

    我正在尝试编写一个接受以下格式的电话号码的程序XXX XXX XXXX并将条目中的任何字母翻译为其相应的数字 现在我有了这个 如果启动不正确 它将允许您重新输入正确的数字 然后它会翻译输入的原始数字 我该如何解决 def main phon
  • 如何改变Python中特定打印字母的颜色?

    我正在尝试做一个简短的测验 并且想将错误答案显示为红色 欢迎来到我的测验 您想开始吗 是的 祝你好运 法国的首都是哪里 法国 随机答案不正确的答案 我正在尝试将其显示为红色 我的代码是 print Welcome to my Quiz be
  • 通过数据框与函数进行交互

    如果我有这样的日期框架 氮 EG 00 04 NEG 04 08 NEG 08 12 NEG 12 16 NEG 16 20 NEG 20 24 datum von 2017 10 12 21 69 15 36 0 87 1 42 0 76
  • 设置 torch.gather(...) 调用的结果

    我有一个形状为 n x m 的 2D pytorch 张量 我想使用索引列表来索引第二个维度 可以使用 torch gather 完成 然后然后还设置新值到索引的结果 Example data torch tensor 0 1 2 3 4
  • 使用 Apache HTTPd 模块的 OAuth 2.0 身份验证

    是否可以使用 Apache HTTPd 服务器模块来实现 OAuth 2 0 或 1 0 我选择这条路线是因为每个请求都会首先到达 HTTPd 模块 因此我必须从那里进行身份验证 如果可能的话 请分享相关链接 我要补充一下尤金尼奥的答案mo
  • 您可以在 Python 类型注释中指定方差吗?

    你能发现下面代码中的错误吗 米皮不能 from typing import Dict Any def add items d Dict str Any gt None d foo 5 d Dict str str add items d f
  • 将数组从 jquery ajax 传递到代码后面

    我必须将二维数组传递给在asp net网页代码后面编写的页面方法我有一个变量objList作为二维数组 我使用以下代码来实现此目的 但没有成功 并且未调用页面方法 脚本语言 function BindTable objList ajax u
  • 改变字典的哈希函数

    按照此question https stackoverflow com questions 37100390 towards understanding dictionaries 我们知道两个不同的字典 dict 1 and dict 2例
  • Python 分析:“‘select.poll’对象的‘poll’方法”是什么?

    我已经使用 python 分析了我的 python 代码cProfile模块并得到以下结果 ncalls tottime percall cumtime percall filename lineno function 13937860 9
  • Pandas 与 Numpy 数据帧

    看这几行代码 df2 df copy df2 1 df 1 df 1 values 1 df2 ix 0 0 我们的教练说我们需要使用 values属性来访问底层的 numpy 数组 否则我们的代码将无法工作 我知道 pandas Data
  • 免费 PHP 登录库 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何添加 id 列来标识 read_html() 表?

    考虑以下站点 site1 http pastebin com vpnGqn5X site2 http pastebin com FbAFGbfR site3 http pastebin com LqZWxFSP 其中有许多不同的表 我在用读
  • 在javascript中访问隐藏字段值

    我的表单中有一个隐藏字段 我正在服务器上设置隐藏字段的值并尝试从 javascript 访问该值 我收到错误 无法获取属性 值 的值 对象为 null 或未定义 如果我查看源代码 则会设置隐藏字段值 并且隐藏字段的 ID 与我正在调用的 I
  • 如何在 py_function 之后重塑(图像,标签)数据集

    我正在尝试读取自定义映射数据集进行训练 但是在使用 py function 映射数据集后 我得到了未知的形状 例如 def process path file path label get label file path img tf io
  • Plotly Python - 热图 - 更改悬停文本 (x,y,z)

    我有一个用 python 绘制的热图 悬停文本工作完美 但它的每个变量都带有 x y 或 z 前缀 如下所示 有什么办法可以改变这个 即x FY y Month 和z Count 这是生成上面热图的代码 dfreverse df hml v

随机推荐

  • 在 cartopy 墨卡托投影上绘制一个圆

    对于一个项目 我需要创建一个可视化效果 在地图上的某些位置周围绘制一个圆圈 使用的可视化卡托比 v 0 18 0 https scitools org uk cartopy docs latest index html渲染地图 它使用Goo
  • 我可以使用 display:inline 和 text-align: 对吗?

    Example td img src img src div style text align left hello world div td 从技术上讲 你可以 但不会有任何效果 Display inline 会将 div 显示为内联元素
  • python 当程序突然结束时如何保持json的完整性

    我在一个打开 10 个子进程的脚本中运行 多线程 每个子脚本都会查询 API 并将一些数据记录到 json 中 我将每个 json 保存在另一个 json 中 但是代码有时会突然结束并破坏 json 的完整性 因此无法重新打开它 例如 20
  • unity3d - 加速度计灵敏度

    我正在 Unity3D 4 3 中测试加速度计代码 我想做的就是在倾斜 ipad 的同时简单地改变物体角度 以像真实生活一样伪造视角 一切工作正常 除了加速计有点太敏感 即使我把它放在桌子上 我也可以看到游戏对象在闪烁 如何让它不那么敏感
  • 如何使用 MiniProfiler.Settings.CustomUITemplates

    再会 我在上一篇文章以及上一篇文章中都看过这里http miniprofiler com http miniprofiler com 但找不到任何有关如何使用的文档MiniProfiler Settings CustomUITemplate
  • Hibernate 排序依据最后为空

    Hibernate 与 PostgreSQL DB 一起使用时 按列对 desc 进行排序时 空值会高于非空值 SQL99 标准提供关键字 NULLS LAST 来声明空值应低于非空值 使用 Hibernate 的 Criteria API
  • 如何在 Django REST Framework 上启用 CORS

    如何在 Django REST Framework 上启用 CORS 这参考 http www django rest framework org topics ajax csrf cors 没有多大帮助 它说我可以通过中间件来完成 但我该
  • syn队列和accept队列的混淆

    在阅读TCP源码时 我发现一个困惑的事情 我知道 TCP 在 3 次握手中有两个队列 第一个队列存储服务器收到的连接SYN并发回ACK SYN 我们称之为同步队列 第二个队列存储3WHS成功并建立连接的连接 我们称之为接受队列 但在阅读代码
  • 用于多浏览器测试的 Specflow 的 DataSource 属性

    我有一些 C 中的 Web ui 测试 这些测试是通过 browserstack 中的 selenium 执行的 目前 这些只是简单的单位毫秒测试 它们是在不同的浏览器上执行的 我想将测试移植到specflow 但我真的不知道如何进行多浏览
  • Python http.client.RemoteDisconnected

    尝试使用 python 通过 Web 服务运行多个 ID 我收到 http client RemoteDisconnected 远程端关闭连接而没有响应 错误 我不想尝试 捕获此错误 我想调查为什么会收到此响应 我已经能够得到 400 和
  • java填充系统属性的源码有哪些

    Through System getProperty 字符串键 http docs oracle com javase 7 docs api java lang System html getProperty java lang Strin
  • Angular2测试表单:未调用提交方法

    有了这个组件 import Component from angular2 core import FORM DIRECTIVES from angular2 common Component selector something temp
  • 如何使用 ConfigurationBuilder 绑定到配置类

    我想用ConfigurationBuidler阅读我的appsettings json文件 我看不出我做错了什么 我的文件是 comment this gets copied to bin debug on build the app up
  • Java JFormattedTextfield 时间格式化

    我在代码中使用时间时遇到了一些麻烦 txtDauer new JFormattedTextField txtDauer setFormatterFactory new DefaultFormatterFactory new DateForm
  • 尝试让 POST 返回 400 错误请求

    我有一个通过关联构建新模型的 create 方法 如果 POST 请求中没有参数 我希望它返回带有一些文本的 400 响应 但是 我收到错误 这是在 Rails 4 0 2 中 控制器方法 def create cast profile c
  • jQuery - .children().size() 更改时触发事件

    我已经搜索了近和远 但我不知道如何在子元素的 size 上放置侦听器 我想做的是 我有一个包含 0 6 个以上子元素的 div 这个数字没有定义 因为我正在制作一个购物车 我希望有一个侦听器 而不是每个可以更改购物车中的商品数量的按钮 即添
  • 来自 json 数据的 Padrino 模型

    我一直在为我正在从事的一个项目寻找 Padrino 它似乎非常适合 因为我理想情况下希望支持以 json 形式发送和接收数据 但是我想知道是否有任何内置的自动化帮助程序或功能可以从发布请求 或其他请求 中获取数据并将该数据放入模型中 而无需
  • IIS8 Express 上的 SqlRoleProvider

    我的 Web 应用程序 WCF 服务 使用SqlRoleProvider 这适用于Visual Studio 开发服务器 将其切换到IIS8 Express导致它抛出一个NullReferenceException though Roles
  • pandas HDFStore - 如何重新打开?

    我使用以下方法创建了一个文件 store pd HDFStore home data h5 并使用以下方法存储一些表 store firstSet df1 store close 我关闭了python并在一个新的环境中重新打开 我如何重新打
  • 使用Python的Requests模块登录ASP网站

    我试图从我的学校页面上抓取一些信息 但我很难通过登录 我知道有类似的线程 我花了一整天的时间阅读 但无法使其发挥作用 这是我使用的程序 用户名和密码已更改 import requests payload ctl00 cphmain Logi