Scrapy 通过表单身份验证绕过警报消息

2024-01-22

Scrapy是否可以抓取警报消息?

链接例如,http://域名/admin http://domainhere/admin,一旦加载到实际的浏览器中,就会出现一条带有表单的警报消息,以填写用户名和密码。

或者有没有办法检查警报消息中的表单以了解要填写哪些参数?

PS:我确实有这个网站的凭据,我只是想通过网络爬行来自动化流程。

Thanks.


为了实现这一目标,我所做的是通过执行以下操作:

  1. 观察身份验证后需要哪些数据才能继续该页面。
  2. 我使用 Chrome 的“网络”选项卡中的开发人员工具检查了请求标头。经观察,需要授权。
  3. 为了验证步骤 #2,我使用了 Postman。使用Postman中的Authorization,Basic Auth类型,填写用户名和密码将为Authorization标头生成相同的值。发送POST请求后,它加载所需的页面并绕过身份验证。
  4. 请求标头下的授权具有相同的值,将该值存储在 Scraper 类中。
  5. 使用带有 headers 参数的 scrapy.Request 函数。

Code:

import scrapy

class TestScraper(scrapy.Spider):
    handle_httpstatus_list = [401]
    name = "Test"
    allowed_domains = ["xxx.xx.xx"]
    start_urls = ["http://testdomain/test"]

    auth = "Basic [Key Here]"

    def parse(self, response):
        return scrapy.Request(
            "http://testdomain/test",
            headers={'Authorization': self.auth},
            callback=self.after_login
        )

    def after_login(self, response):
        self.log(response.body)

现在,您可以在身份验证过程后抓取页面。

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

Scrapy 通过表单身份验证绕过警报消息 的相关文章

随机推荐

  • 序列化代码示例中的无限循环

    看看下面的代码here https web archive org web 20151025040111 http blogs msdn com 80 b sowmy archive 2006 03 26 561188 aspx 它是关于在
  • 如何使用 Jest 运行单个测试?

    我在文件 fix order test js 中有一个 适用于嵌套子项 的测试 运行以下命令会运行文件中的所有测试 jest fix order test 如何只运行一个测试 下面的代码不起作用 因为它搜索指定的正则表达式的文件 jest
  • Windows:检测右 alt 是否在当前布局中生成 Ctrl+Alt (AltGr)

    Windows 中的某些键盘布局 例如 US QWERTY 将右 Alt 视为常规 Alt 键 而其他键盘布局 例如 US International 将其视为 AltGr 并在按下时同时生成 Ctrl 和 Alt 键 Microsoft
  • 通过身份验证从 https 下载文件

    我有一个 Python 2 6 脚本 可以从 Web 服务器下载文件 我希望这个脚本传递用户名和密码 用于在获取文件之前进行身份验证 并且我将它们作为 url 的一部分传递 如下所示 import urllib2 response urll
  • android 中如何导航到另一个页面?

    我是安卓新手 请告诉我如何在 android 中导航到新页面 提前致谢 编辑 如何从现有活动开始新活动 在 Android 中 导航到另一个页面意味着您必须启动另一个 Activity 要开始新活动 请使用此 Intent intent n
  • 使用 postgres 表序列而不是共享 hibernate_sequence

    当我对表执行任何操作时 它总是显示错误 Hibernate select nextval hibernate sequence 2019 07 20 16 15 44 877 WARN 58376 nio 9000 exec 1 o h e
  • 按修改日期而不是发布日期对 Jekyll 帖子进行排序?

    对于经常更新帖子的人来说 有必要根据帖子从新到旧进行排序最后修改日期而不是 Jekyll 默认按发布日期排序 似乎没有简单的方法可以实现这一点 我已经阅读并测试了几乎所有的方法 这是有效的 部分符合预期 用过这个宝石https github
  • 在linux中安装jdk 1.7时出错[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 当我使用以下命令在 Oracle Linux 中安装 jdk 1 7 时 rpm ivh jdk 7u9 linux i586 rpm 但是我收到以下
  • 使用正则表达式捕获两个单词之间的文本

    我正在尝试使用 CSharp 中的正则表达式获取两个关键字之间的文本 虽然我已经找到了一个具有相同标题的主题 但该主题是关于查找方括号之间的文本 这相当容易 因为您可以使用
  • 为什么 SQLAlchemy count() 比原始查询慢得多?

    我正在使用 SQLAlchemy 和 MySQL 数据库 我想计算表中的行数 大约 300k SQL炼金术count http docs sqlalchemy org ru latest orm query html sqlalchemy
  • 警告:在此函数中使用未初始化的“”[-Wuninitialized]

    以下程序编译时没有警告 O0 include
  • GitHub Action:如何从表达式求值中获取值并将其分配给环境变量

    环境表达式通常直接赋值 如下例所示 name set up env var env TAG v1 2 3 run echo TAG 但是如何从 shell 脚本评估中获取值呢 例如 在我的终端中 我可以通过以下方式获取当前标签git des
  • CMake rpm 在 /etc/init.d 中安装文件

    我想安装一个文件 etc init d 目录 我已经写了代码 INSTALL FILES CMAKE SOURCE DIR app script appd DESTINATION etc init d appd 但是当我使用 cmake 运
  • Facebook SDK 4.5 iOS 9

    我遇到了新 FBSDK 的问题 每当我尝试调用登录方法 logInWithReadPermissions 时 我都会收到以下错误消息 错误 canOpenUrl url fbauth2 失败错误 null 我的配置 plist 文件遵循 i
  • 使用GPU加速BigInteger计算

    我几乎完成了处理一些非常大的整数 大约 2 的 100 000 000 次方 的算法 由于该算法不是内存密集型的 因此需要在内存充足的 16 核服务器上编写几个小时的高度并行代码 我使用 NET 4 中的 BigInteger 类 算法的细
  • ASP.Net Core 中的动态路由

    我需要提供一个路由机制 其中路由是在运行时从用户帐户创建生成的 例如http mysite username home 我认为这可以通过路由来完成 但我不确定从哪里开始使用 ASP Net Core 我在网上看到了一些 MVC 5 的示例
  • zxing 集成到 monodroid 应用程序中

    我正在尝试将 ZXing 的条形码扫描仪集成到 MonoDroid 应用程序中 我看到普通的 Android java 应用程序有IntentIntegration java 和 IntentResult java http code go
  • 如何“解锁詹金斯”?

    我正在Windows上安装Jenkins 2 安装后 打开一个页面 URL是 http localhost 8080 login from 2F http localhost 8080 login from 2F content of th
  • Selenium 在 Windows 中运行无头 Firefox 浏览器

    是否可以将 Selenium 配置为使用 Firefox 驱动程序并在 Windows 中无头运行浏览器 我知道其他驱动程序在 Windows 或 Linux 下也能正常工作 但在上面提到的特定情况下则不然 任何可供阅读的参考信息 实现它的
  • Scrapy 通过表单身份验证绕过警报消息

    Scrapy是否可以抓取警报消息 链接例如 http 域名 admin http domainhere admin 一旦加载到实际的浏览器中 就会出现一条带有表单的警报消息 以填写用户名和密码 或者有没有办法检查警报消息中的表单以了解要填写