使用 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
=]
在您的例子中,您有以下输入:loginname
、password
、lang
。
另外,找到 <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=(.*)
)。
现在你已经设置好了。您应该能够在任何您喜欢的地方使用这个小小的新蓝色令牌,并自动从以前的表单中提取值。每当您再次发送初始请求并获得新令牌时,其他所有内容也会更新! :)
指南有点长,但我希望这对您有所帮助,希望对其他人也有帮助。
我是新手,但我认为 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
=]
在您的例子中,您有以下输入:loginname
、password
、lang
。
另外,找到 <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=(.*)
)。
现在你已经设置好了。您应该能够在任何您喜欢的地方使用这个小小的新蓝色令牌,并自动从以前的表单中提取值。每当您再次发送初始请求并获得新令牌时,其他所有内容也会更新! :)
指南有点长,但我希望这对您有所帮助,希望对其他人也有帮助。