从西安坐飞机去深圳,比坐火车是提速了,但是你可能错过欣赏沿途植被由北往南渐变的奇妙景观了。Invoke-WebRequest的提速也是如此。
在Invoke-WebRequest提速中提到“使用-UseBasicParsing后,Invoke-WebRequest在请求完数据后,就不会调用IE去进行DOM树结果的解析”。然会@小楼回复:”用了这个参数少了很多东西。”
那到底少了什么呢?文字解释不一定准确, 用程序来解释吧:
$blog='https://www.pstips.net' $useBasicParsing = Invoke-WebRequest $blog -UseBasicParsing $useStandardParsing = Invoke-WebRequest $blog $standardMember = $useStandardParsing | Get-Member | select -ExpandProperty Name $basicMember = $useBasicParsing | Get-Member | select -ExpandProperty Name Compare-Object $basicMember $standardMember
输出为:
AllElements => Forms => ParsedHtml => Scripts =>
从上面的脚本和输出中至少可以看出:默认的输出类型比使用了UseBasicParsing后多出了4个属性。其实差异何止4个属性呢,返回值的类型也不同:
PS> $useStandardParsing.GetType().fullname Microsoft.PowerShell.Commands.HtmlWebResponseObject PS> $useBasicParsing.GetType().fullname Microsoft.PowerShell.Commands.BasicHtmlWebResponseObject
- BasicHtmlWebResponseObject:后者使用的是简单解析,只有链接,图片,输入框等。
- HtmlWebResponseObject:前者使用的是DOM(IE的文档对象模型)解析。
结论:在不对DOM结点感兴趣时,可以使用useBasicParsing参数来提高效率。
本文链接: https://www.pstips.net/usebasicparsing-in-invoke-webrequest.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!
很文章写的棒棒的!