使用 Paw 提取登录页面后面的 URL 的一部分

Extract part of an URL behind a login page with Paw

我是新手,但我认为 Paw 可以满足我的需要:

我需要在登录页面后面提取会话 ID。 我转到 https://admin.booking.com,填写表格(登录并通过),后面的登录页面包含一个会话 ID: https://admin.booking.com/pc/index.html?ses=xxxxyyyyzzzzz11112222233333

我愿意:

1) 作为我请求的一部分,使用 Paw 推送凭据,

2) 获取上述项目 (ses) 作为响应,这样我就可以使用 Paw 提供的 php 脚本扩展,然后调用此脚本 "on demand".

这可能吗?如果是这样,我该怎么办?

感谢您的帮助

更新*: 我们添加了一篇文档文章来进一步描述该过程:Login via a web form in Paw。我们也详细介绍了处理 CSRF 令牌的过程。


Paw 尚未准备好处理 web/HTML 表单。不过,有一种方法可以正确地做到这一点:如果您使用 Chrome 开发工具检查表单,您会发现 DOM/HTML:[=36 输入的 name =]

在您的例子中,您有以下输入:loginnamepasswordlang。 另外,找到 <form…> 标记以查看 action 属性是什么。如果没有 action 属性(如您的示例),则表示表单的目标 URL 是当前页面的 URL(在您的示例中为 https://admin.booking.com/)。另外,请确保 method="POST" 也在 <form…> 标签中,否则此方法将不起作用。

然后跳入Paw并设置:

  • URL(在你的情况下 https://admin.booking.com/
  • 方法 POST
  • 转到 Body 选项卡并使用“表单 URL-Encoded + 填写表单中的字段

如果一切正常,您会看到 Paw 显示重定向请求,如果您转到 "Response" > "Headers" 下的 right-hand 侧面板,您应该会看到 Location header 的值类似于您最初提到的 URL (https://admin.booking.com/pc/index.html?ses=xxxxyyyyyzzzzz11112222233333)。欢呼!你在 Paw 中获得了你的价值!

现在您已经有了,您可以创建一个新请求(单击 left-hand 侧列表底部的 + 按钮)。无论您想在何处使用此 session token/ID,您都可以插入一个动态值来检索该 URL 值。您有更多信息 here, in our docs,但我将在此处描述步骤:

在您想插入令牌的任何字段上,right-click 并选择“响应”>“响应”Header。

确保在 "Request" 下拉菜单中选择第一个请求,然后在 "Header" 字段中输入 Location

您应该会在此处看到先前响应的 Location header 的值。

现在你要做的是只提取你想要的部分(即在你的情况下 ses 参数的值)。为此你需要 Paw 的扩展,所以请现在安装它:https://luckymarmot.com/paw/extensions/RegExMatch

复制您刚刚插入的动态值(蓝色标记),然后在该字段上 right-click 以插入新的动态值,然后选择扩展 > RegExp 匹配:

在“输入”字段中,粘贴您之前复制的动态值。并使用 RegExp 字段编写一个正则表达式,该表达式将成功提取您想要的 URL 部分(这应该适用于您的情况 ses=(.*))。

现在你已经设置好了。您应该能够在任何您喜欢的地方使用这个小小的新蓝色令牌,并自动从以前的表单中提取值。每当您再次发送初始请求并获得新令牌时,其他所有内容也会更新! :)

指南有点长,但我希望这对您有所帮助,希望对其他人也有帮助。