[玩转系统] Invoke-WebRequest:PowerShell 的 Web 瑞士军刀
作者:精品下载站 日期:2024-12-14 12:36:44 浏览:14 分类:玩电脑
Invoke-WebRequest:PowerShell 的 Web 瑞士军刀
您是否曾经想通过命令行浏览网页?是的。我也不。但是您是否曾经需要从网页提取信息、监控网站或通过自动化提交信息?我已经并且使用 Invoke-Webrequest 来做到这一点!
Invoke-WebRequest
PowerShell cmdlet 是网络领域的瑞士军刀。此 cmdlet 可以将任何 HTTP 动词以及常见的内容(例如 HTTP 参数、指定不同的 HTTP 标头等)发送到 Web 服务。如果您需要执行任何类型的 Web 自动化,Invoke-WebRequest
及其兄弟 Invite-RestMethod
是您需要熟悉的两个 PowerShell cmdlet。
Invoke-WebRequest
cmdlet 是 Windows PowerShell 和 PowerShell Core 附带的 Microsoft.PowerShell.Utility 模块的一部分。这个 cmdlet 自 v3 起就包含在 PowerShell 中,它功能极其强大且易于使用。
通过使用 Invoke-WebRequest
,PowerShell 允许开发人员以多种不同的方式使用网站、Web 服务和 REST API。
基本用法
最基本的是,Invoke-WebRequest
cmdlet 将 HTTP 请求方法发送到端点(例如 URI 或 URL)。该 cmdlet 支持所有常见请求方法。
到目前为止,最常见的方法是GET方法。此方法读取信息,例如来自网站的信息或可能查询 REST API。该方法是使用 Method
参数定义的。由于我们需要一个端点来查询,因此我们还需要一个 URI。为了简单起见,我会选择任何网站。为了无耻地推广 TechSnips,我会选择 techsnips.io。
假设我想获取所有最新发布的视频的列表,如下所示。
我可以通过运行 Invoke-WebRequest -Uri 'https://techsnips.io' -Method GET
获取此页面的 HTML 表示形式。当我这样做时,Invoke-WebRequest
下载整个网页并返回一个输出,其中包含页面元素周围的各种解析信息。
为了获得视频,我需要进行一些挖掘。当我查看 links 属性时,我发现一个共同点,即所有视频链接都有一个 ng-binding 类,如下所示。
一旦我知道了这一点,我就可以找到所有这些元素,并且只返回 innerHTML
属性,瞧!
使用 Invoke-WebRequest 下载文件
我们还可以使用 Invoke-WebRequest
从网络下载文件,这非常简单!我们只需将 Invoke-WebRequest
指向文件的 URI,并使用 OutFile
参数告诉 cmdlet 将文件保存到本地磁盘即可下载文件。
作为示例,下面我将下载 SysInternals Handle 实用程序并在下载后展开 zip 文件。真的就是这么简单!
Invoke-WebRequest -Uri 'https://download.sysinternals.com/files/Handle.zip' -OutFile C:\handle.zi Expand-Archive -Path C:\handle.zip
提交表单并使用会话
我们还可以使用 Invoke-WebRequest
来填写表单。但要做到这一点,我们通常需要使用网络会话。 HTTP 是一种天然的无状态协议,您的浏览器(在本例中为 PowerShell)必须能够创建一个会话,该会话将用于跟踪 Cookie 等内容。常见的表单是登录/密码表单,所以让我们登录到一个虚构的网站!
假设我们虚构的登录表单位于 URL http://somewebsite.com。我们首先需要运行 Invoke-WebRequest 来下载 HTML 结构并创建会话。
$response = Invoke-WebRequest -Uri 'http://somewebsite.com' -SessionVariable rb
完成此操作后,响应将具有一个 Forms
属性,然后我们可以使用用户名和密码填充。在本例中,用户名由名为 user
的字段表示,密码应位于名为 password
的字段中。这将取决于网页。
$form = $response.Forms[0]
$form.Fields["user"] = "username"
$form.Fields["password"] = "password"
填充表单后,我们可以再次使用 Invoke-WebRequest
但这次重新使用我们刚刚创建的会话,并通过读取 Action 自动找出要发送到的 URI表单上的
属性如下所示。
$response = Invoke-WebRequest -Uri $form.Action -WebSession $rb -Method POST
如果您正确设置了所有适当的字段名称,并且网页没有任何效果,则您应该在 $rb
网络会话中使用用户名和密码登录。此时,如果您使用 $rb
Web 会话变量,您可以读取该身份验证背后的各个页面。
解析短 URI
最后,Invoke-WebRequest
的另一个重要用途是解析短 URI。也许您需要知道缩短的 URL 背后的内容,但又不想点击它来找出答案!没问题。使用 Invoke-WebRequest
,我们可以从它提供给我们的解析响应中读取 AbsoluteUri
属性!
请注意,下面我还使用了 UseBasicParsing
参数。默认情况下,Invoke-WebRequest
尝试使用 Internet Explorer (IE) 解析返回的 HTML。这在没有 IE 的系统上不起作用。为了解决这个问题,我们可以使用 UseBasicParsing
参数仍然下载内容,但仅对其进行轻微解析。
$Url = 'buff.ly/2sWvPOH'
$Web = Invoke-WebRequest -Uri $Url -UseBasicParsing
$Web.BaseResponse.ResponseUri.AbsoluteUri
概括
Invoke-WebRequest
cmdlet 是 PowerShell 附带的最通用的 cmdlet 之一。如果某个操作可以通过典型的图形浏览器执行,则 Invoke-WebRequest
cmdlet 也可以执行该操作。您可以通过查看有关监视 REST API 的文章来找到使用此 cmdlet 的示例。
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag