文章摘要
文章介绍了一种在PowerShell中处理HTML页面的方法,重点在于解决使用`Net.HttpWebRequest`获取UTF-8编码响应时可能出现的问题。作者建议通过文本流获取响应内容,并使用`mshtml.HTMLDocumentClass`创建HTML文档对象,以直接获取解析好的HTML内容。这种方法避免了与UTF-8编码相关的潜在问题,代码示例展示了如何实现这一解决方案。文章整体内容简明扼要,重点突出了解决方案的具体实现方式。
function Read-HtmlPage {
param ([Parameter(Mandatory=$true, Position=0, ValueFromPipeline=$true)][String] $Uri)
function Read-HtmlPage {
param ([Parameter(Mandatory=$true, Position=0, ValueFromPipeline=$true)][String] $Uri)
# Invoke-WebRequest and Invoke-RestMethod can’t work properly with UTF-8 Response so we need to do things this way.
[Net.HttpWebRequest]$WebRequest=[Net.WebRequest]::Create($Uri)
[Net.HttpWebResponse]$WebResponse=$WebRequest.GetResponse()
$Reader=New-Object IO.StreamReader($WebResponse.GetResponseStream())
$Response=$Reader.ReadToEnd()
$Reader.Close()
# Create the document class
[mshtml.HTMLDocumentClass] $Doc=New-Object -com “HTMLFILE”
$Doc.IHTMLDocument2_write($Response)
# Returns a HTMLDocumentClass instance just like Invoke-WebRequest ParsedHtml
$Doc
#powershell 传教士 转帖并修改的文章 2016-01-01, 允许再次转载,但必须保留名字和出处,否则追究法律责任
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。


