Powershell脚本自动化登录网站的简单实例,命令行方式实现Http(s)的GET、POST请求

这篇具有很好参考价值的文章主要介绍了Powershell脚本自动化登录网站的简单实例,命令行方式实现Http(s)的GET、POST请求。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

自动化登录网站的流程比较简单,如果不懂 Python、JavaScript、C++ 等编程语言,又没有安装这些编程语言环境软件,我们还要新的点子:用Windows系统自带的 Powershell 运行自编的脚本来实现。

PowerShell 是一种功能强大的自动化工具,除了可以使用 DOS 批处理命令之外,还可以进行计算,网络爬虫,抓取网页数据等骚操作。 在本文中,我们将探讨如何使用 PowerShell 登录一个论坛。

Powershell的好处:

1、Windows自带,不需要安装编程语言环境,用任何一款文本编辑器(如“记事本”)都可以编辑脚本。

2、自带函数,网络编程不需要另外安装库文件或头文件。

3、与DOS的.bat批处理一样是解释型编程,不需要编译成.exe,可以逐行输入一步步运行代码。

第一步:初始化登录页面的 URL 和将用于发出请求的会话对象(Session)。

$login_url = 'http://登录网址'
$username = '登录账号'
$password = '登录密码'
# 创建一个Session,会自动记录Cookies便于后续的网络访问
$session = New-Object Microsoft.PowerShell.Commands.WebRequestSession

第二步:Invoke-WebRequest 命令发出 GET 请求打开登录的网页,可以使用 -SessionVariable 参数来保存会话对象以备后用。

网页源代码保存在$response1.Content变量中,然后从该变量里通过正则表达式提取登录所需的表单数据,比如某论坛的登录页面源代码里的一个 hash 值。

$response1 = Invoke-WebRequest -Uri $login_url -SessionVariable session

# 发出GET请求后获得的网页源代码保存在$response1.Content变量中
# 正则表达式提取网页源代码 name="hash" value="…………" 中“…………”的内容

if ($response1.Content -match 'name="hash" value="(.*?)"') {
    $hash = $Matches[1]
}

$Matches 变量是一个特殊的 PowerShell 变量,它保存正则表达式抓取的结果。

第三步:准备将在登录表单提交中发送的数据。 创建一个包含必填字段的 data 表,包括上面提取到的 hash 值、用户名和密码。

然后再用Invoke-WebRequest 命令传入数据( -Body $data)和会话对象。必须使用 -WebSession $session 参数以保持会话连接(延续使用上面网络访问后产生的 cookies)。

$data = @{
    hash = $hash
    username = $username
    password = $password
}

# "POST"发送表单数据来登录网站
$response2 = Invoke-WebRequest -Uri $login_url -Method POST -Body $data  -WebSession $session

第四步:发出 POST 请求后,服务器返回的信息形式可能如下:

{"status":1,"msg":"\u767b\u5f55\u6210\u529f","redirect":{"timeout":2,"subject":"\u9996\u9875","href":"\/"}}

很明显这是一个 JSON 对象,其中的“msg”就是我们需要了解的登录结果文本,由于文本被编码成Unicode,要转换为人能看懂的文字,就需要使用 ConvertFrom-Json cmdlet 解析该对象再来输出正确的文本消息。

# 将服务器返回的网页源代码文本转换为JSOn格式
$json1 = $response2.Content
$obj = $json1 | ConvertFrom-Json

# 从JSON中提取 "msg" 的文本并输出
$msg1 = $obj.msg
Write-Output $msg1

由于 PowerShell 是解释型运行代码,因此上述的代码可以在 PowerShell 提示符里直接粘贴运行。也可以像 DOS 的 .bat 批处理文件那样先把以上的代码保存成 Powershell 的脚本格式,扩展名是 .ps1,文件名任意,比如:my login test.ps1,保存在 D:\Documents。然后在开始菜单选择打开 Powershell,运行步骤如下:

cd "d:\documents"
.\"my login test.ps1"

文件名、目录名加双引号为了防止有空格而出错,运行脚本的命令是文件名前面必须要有 .\ 

 Powershell脚本自动化登录网站的简单实例,命令行方式实现Http(s)的GET、POST请求

注意:如果你是第一次运行 .ps1 脚本文件,很可能 PowerShell 会提示以下的错误信息:

无法加载文件 D:\documents\my login test.ps1,因为在此系统上禁止运行脚本。
有关详细信息,请参阅 https:/go.microsoft.com/fwlink/?LinkID=135170 
中的 about_Execution_Policies。
所在位置 行:1 字符: 3
+   .\"my login test.ps1"
+   ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : SecurityError: (:) [],PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess

Powershell脚本自动化登录网站的简单实例,命令行方式实现Http(s)的GET、POST请求

原因是首次启动 PowerShell 时,现用执行策略很可能是 Restricted(不允许任何脚本运行)。需要开启运行脚本,在 PowerShell 里输入命令:

set-ExecutionPolicy RemoteSigned

Powershell脚本自动化登录网站的简单实例,命令行方式实现Http(s)的GET、POST请求

 然后按提示输入 A (永久生效)或 Y (临时生效)即可继续运行脚本。文章来源地址https://www.toymoban.com/news/detail-498123.html

到了这里,关于Powershell脚本自动化登录网站的简单实例,命令行方式实现Http(s)的GET、POST请求的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NPS(cnlh)内网穿透弱口令与登录爆破漏洞复现-内附自动化脚本

    目录 1.漏洞概述 2.影响版本 3.漏洞等级 4.漏洞复现 4.1 复现 4.2 POCsuite POC

    2024年02月10日
    浏览(41)
  • Web 自动化测试案例——关闭某视频网站弹出广告以及打开登录框输入内容

    人生苦短,我用Python。许久没写博客了,今天又是久违的参与话题的讨论,话题的内容是: 如何入门 Python 的? 这个话题对于我来说有点小尴尬,因为我没有系统的学习过 Python 这门语言,只不过在写些算法题、小demo接触过,还有就是帮朋友搞大数据作业时(爬取数据、分析

    2024年02月10日
    浏览(77)
  • Web 自动化测试案例(入门级)——关闭某视频网站弹出广告以及打开登录框输入内容

    人生苦短,我用Python。许久没写博客了,今天又是久违的参与话题的讨论,话题的内容是: 如何入门 Python 的? 这个话题对于我来说有点小尴尬,因为我没有系统的学习过 Python 这门语言,只不过在写些算法题、小demo接触过,还有就是帮朋友搞大数据作业时(爬取数据、分析

    2024年02月06日
    浏览(68)
  • 【Web项目实战】从零开始学习Web自动化测试:用Python和Selenium实现网站登录功能

    B站首推!2023最详细自动化测试合集,小白皆可掌握,让测试变得简单、快捷、可靠 https://www.bilibili.com/video/BV1ua4y1V7Db 目录 1.环境搭建

    2024年02月06日
    浏览(70)
  • Microsoft Graph PowerShell v2 发布公开预览版 - 一半的大小,加速的自动化体验

    通过使用 Microsoft Graph PowerShell SDK 将 Microsoft Graph API 引入 PowerShell,自动化和管理您的 Microsoft 365 租户。专注于真正重要的事情,构建脚本来自动化您的工作,而不是担心限流、重试、重定向和身份验证。Microsoft Graph PowerShell SDK 可以处理所有这些问题,并为 Microsoft Graph 中可用

    2024年02月04日
    浏览(35)
  • 自动化操作脚本

    SSH连接并执行指令操作 MQTT服务器启动

    2024年02月05日
    浏览(45)
  • Postman-脚本自动化及定时执行脚本(7)

    一.postman脚本自动化 ( 从postman至Newman可以一键执行脚本并生成报告: ) Postman Newman 是一个 CLI(命令行界面)工具,可以使用它来运行 Postman 中的集合(Collection)和环境(Environment)进行自动化测试。postman使用newman插件完成命令执行postman脚本。**(1)newman按装** 1.Newman安

    2024年01月21日
    浏览(48)
  • Jenkins自动化打包脚本

    jenkins可以设置定时任务打包,也已手动点按钮打包,还可以通过执行http请求打包,今天我们就通过shell脚本,通过curl命令进行jenkins打包。 2.1 在jenkins上构建项目 设置触发器

    2024年02月13日
    浏览(42)
  • 自动化防DDoS脚本

    DDoS (分布式拒绝服务攻击)是一种恶意的网络攻击,旨在通过占用目标系统的资源,使其无法提供正常的服务。在DDoS攻击中,攻击者通常控制大量的被感染的计算机或其他网络设备,同时将它们协调起来向目标系统发起海量的请求,超出其处理能力范围,导致服务不可用。

    2024年01月25日
    浏览(37)
  • [Python自动化]使用Python Pexpect模块实现自动化交互脚本使用心得

    参考文档:https://pexpect.readthedocs.io/en/stable/ 在最近的工作中,需要使用DockerFile构建镜像。在构建镜像的过程中,有一些执行的命令是需要交互的。例如安装 tzdata (apt install tzdata),不过在使用apt安装时,可以直接使用 DEBIAN_FRONTEND=noninteractive 前缀来取消交互(至于是禁止交互还

    2023年04月25日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包