2017-07-30 35 views
0

網頁內容進行交互這是我投入的PowerShell:試圖解析,並使用PowerShell的

PS > $source = "http://www.bing.com/search?q=sqrt(2)" 
PS > $result = Invoke-WebRequest $source 
PS > $resultContainer = $result.ParsedHtml.GetElementById("results_container") 

這是錯誤消息我回來:

The property 'ParsedHtml' cannot be found on this object. Verify that the property exists.                     At line:1 char:1                                        + $resultContainer = $result.ParsedHtml.GetElementById("results_contain ...                         
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [], PropertyNotFoundException 
    + FullyQualifiedErrorId : PropertyNotFoundStrict 
+0

我應該補充說我在Mac的終端中使用了PowerShell。 –

回答

3

我不相信您可以在非Windows平臺上使用PowerShell執行此操作(至少尚未完成)。爲了解析HTML內容,PowerShell使用MSHTML.DLL和/或Windows以外不存在的其他Internet Explorer/Edge組件。請注意,GetElementById just proxies to the COM object並且環境中沒有COM對象。

您可以檢查通過Invoke-WebRequest返回的對象的RawContent財產和解析字符串你自己去尋找你想要的內容,但用正則表達式解析HTML是一種非首發所以你必須使用其他方法。

順便說一句,我無法找到您的例子中使用的頁面上idresults_container元素。