[玩转系统] PowerShell wget | PowerShell PowerShell wget 如何与示例一起使用?
作者:精品下载站 日期:2024-12-14 20:33:31 浏览:15 分类:玩电脑
PowerShell wget | PowerShell PowerShell wget 如何与示例一起使用?
PowerShell wget 简介
PowerShell Wget 是 PowerShell 中 Invoke-WebRequest 的别名,是一个非交互式实用程序,它将请求发送到 HTTP 或 HTTPS 网页或 Web 服务,解析响应并返回链接、图像的集合,和HTML元素,它还有助于从网页下载文件,用表单发布或删除或修改网站上的数据,检查网站的状态等。
语法
Invoke-WebRequest
[-UseBasicParsing]
[-Uri] <Uri>
[-WebSession <WebRequestSession>]
[-SessionVariable <String>]
[-AllowUnencryptedAuthentication]
[-Authentication <WebAuthenticationType>]
[-Credential <PSCredential>]
[-UseDefaultCredentials]
[-CertificateThumbprint <String>]
[-Certificate <X509Certificate>]
[-SkipCertificateCheck]
[-SslProtocol <WebSslProtocol>]
[-Token <SecureString>]
[-UserAgent <String>]
[-DisableKeepAlive]
[-TimeoutSec <Int32>]
[-Headers <IDictionary>]
[-MaximumRedirection <Int32>]
[-MaximumRetryCount <Int32>]
[-RetryIntervalSec <Int32>]
[-Method <WebRequestMethod>]
[-Proxy <Uri>]
[-ProxyCredential <PSCredential>]
[-ProxyUseDefaultCredentials]
[-Body <Object>]
[-Form <IDictionary>]
[-ContentType <String>]
[-TransferEncoding <String>]
[-InFile <String>]
[-OutFile <String>]
[-PassThru]
[-Resume]
[-SkipHttpErrorCheck]
[-PreserveAuthorizationOnRedirect]
[-SkipHeaderValidation]
[<CommonParameters>]
如果我们检查 Invoke-Webrequest 语法,PowerShell 7.1 版本支持该命令的 4 组。
其他 3 组包括以下额外参数。
-无代理
-自定义方法
这意味着您不能将上述 2 个参数与第一组某些参数组合起来。例如,您不能同时使用 -Proxy 和 -NoProxy 参数,但同时设置支持 -NoProxy 和 -CustomMethod 。
PowerShell wget 如何工作?
Wget 实用程序是基于 Unix 的实用程序,通常人们用它从网页下载文件。 PowerShell以cmdlet Invoke-WebRequest的形式引入了类似的实用程序,其别名为wget,以便来自Unix背景的人可以理解该命令具有PowerShell中类似或更高级的功能。
Invoke-WebRequest 在 PowerShell 3.0 中引入,并且在与网页交互方面变得非常流行。
Wget 是 PowerShell .Net 框架版本(v1.0 至 5.1)中 Invoke-WebRequest 命令的别名。
Get-Alias -Name wget
输出:
在 Powershell Core 版本(6.0 及以上)中,wget 别名被替换为 iwr 命令。
Get-Alias -Definition Invoke-Webrequest
输出:
Wget 和 iwr 还具有相同的受支持实用程序,称为“curl”,它是一个 Unix 命令,但作为 Invoke-Webequest 命令的别名引入。
Get-Alias -Definition Invoke-WebRequest
输出:
当您使用 Wget 命令解析网页时,一些属性和方法与该命令相关联。让我们看看这些成员是什么。
$uri = "https://theautomationcode.com"
$response = wget -Uri $uri
$response | gm
输出:
有各种属性,如标题、图像、链接,您可以直接通过 wget 命令检索。
在下面的示例中,我们将了解 wget 命令如何支持各种参数。
PowerShell wget 示例
下面给出了 PowerShell wget 的示例:
例子#1
使用wget命令查看网站状态
我们可以使用wget(Invoke-WebRequest)命令检查网页的状态。
$uri = "https://theautomationcode.com"
wget -Uri $uri
输出:
StatusCode 200 表示该站点正常。您可以在下面的 wiki 页面链接上查看各种状态代码。
https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
例子#2
Wget 命令中的异常处理。
编程语言使用 try/catch 方法进行异常处理。在本例中,我们将在PowerShell中使用相同的方法处理不存在网站异常。
Try {
$uri = "https://theautomationcode222.com"
wget -Uri $uri -EA Stop
}
Catch {
Write-Host $($_.Exception.Message) -BackgroundColor DarkRed
}
输出:
捕获消息的状态代码。
try{
$uri = "www.microsoft.com/unkownhost"
wget -Uri $uri -EA Stop
}
catch{
Write-Output "Status Code: $($_.Exception.Response.StatusCode.value__)"
}
输出:
例子#3
使用 Wget 命令下载文件。
我们可以使用 wget 命令直接从互联网下载文件,如下所示。本例中我们从 MS 网站下载一个基于 Web 的网络框架,如下所示。
$uri = https://go.microsoft.com/fwlink/?LinkId=2085155
wget -Uri $uri -OutFile "C:\temp\netframework.exe" -Verbose
输出:
上述命令会将下载文件保留在 C:\temp 文件夹中,名称为 NetFramework.exe。
例子#4
从网页下载图像、链接。
通过wget小部件,我们可以直接从网站访问本地系统的图像或链接,如下所示。
$uri = "https://theautomationcode.com"
$response = wget -Uri $uri
使用上述命令,来自网页的响应将存储在 $Response 变量中。因此,我们可以直接访问这些属性。但是,首先,让我们检查一下网站上存储的图像。
$response.Images.src
输出:
上面的命令显示了网站图像的来源。
通过对上述命令进行一些操作,您可以将这些图像下载到特定文件夹,如下所示。它将把链接中的所有图像下载到 C:\temp\WebImages 文件夹。
foreach($img in $response.Images.src){
$imgurl = ($img.Split('?'))[0]
$imgname = ($imgurl -split '/')[-1]
wget -Uri $imgurl -OutFile "C:\temp\WebImages$imgname" -Verbose
}
输出:
同样,您可以访问网站上的链接。
$response.Links.Href
例子#5
使用 wget 将 Rest API 内容转换为 JSON 数据。
当我们使用 REST API 获取网站数据时,该数据通常采用 JavaScript 对象表示法 (JSON) 格式。因此,当我们使用Invoke-RestMethod命令时,它直接将输出转换为JSON格式,如下所示。
Invoke-RestMethod -Uri "https://jsonplaceholder.typicode.com/posts"
输出:
但是使用wget命令,我们需要使用一些cmdlet来过滤内容,然后才能转换为上面的输出显示格式。
$uri = 'https://jsonplaceholder.typicode.com/posts'
$response = Invoke-WebRequest -Uri $uri
$response.Content | ConvertFrom-Json
您将得到与第一个相同的输出。
例子#6
使用wget post方法登录网站。
在下面的示例中,我们将使用 LinkedIn 网站使用 wget 表单登录,如下所示。
$linloginpage = 'https://www.linkedin.com/login?fromSignIn=true&trk=guest_homepage-basic_nav-header-signin'
$response = wget -Uri $linloginpage -SessionVariable LIN
$form = $response.Forms[1]
$form.Fields["Username"] = "user@emailid"
$form.Fields["Password"] = "Your password"
$uri = "https://www.linkedin.com" + $form.Action
$r = wget -Uri $uri -WebSession $Lin -Method Post -Body $form.Fields
Write-Output "`n`nWebsite Status: $($r.StatusDescription)"
输出:
结论
Wget 或 Invoke-WebRequest(Curl、iwr)是网页抓取的最佳命令行工具之一,被各种开发人员和脚本编写人员用来调用 API,传递、删除、修改、添加信息到 API 或网页无需使用GUI,也有助于处理各种类型或网页错误和报告目的。
猜你还喜欢
- 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