現在Powershellを使用して特定のサイトのリンクページをスクラップしようとしています。現在のコードの変形をノックしましたが、それは同じように本質的です。googleから最初の検索結果を取得
検索のGoogle検索結果のURLを取得しようとしています。私は何をつかむことを望んでいるのかを説明するために、以下のスクリーンショットを追加しました。
私はこれまでのところ成功した検索にテキストに変換されて、私は意味のある結果を得るいけない呼び出し、WebRequestクラスで呼び出されたときexpected.howeverとして働いている次のコードを持っています。リンクが付いているブラウザを使用している場合は、それは正常に動作します
function Get-GoogleSEQueryString
{
param([string[]] $Query)
Add-Type -AssemblyName System.Web # To get UrlEncode()
$QueryString = ($Query | %{ [Web.HttpUtility]::UrlEncode($_)}) -join '+'
# Return the query string
$QueryString
}
$SearchString = "Requiem for an American Dream"
$QueryString = Get-GoogleSEQueryString $SearchString
$url = "http://www.google.com.au/?gfe_rd=cr&ei=ZuzTV_v6B7Du8weC8qsY#q="+$QueryString+"+site:IMDB.com"
#(Invoke-WebRequest -Uri $url).links | Where-Object {$_.href -like "http*"}
$t = Invoke-WebRequest -uri $url
$t.AllElements | Where {$_.innerhtml -like '*=*'} |Sort { $_.InnerHtml.Length } | Out-GridView
誰でもこの問題に関して親切に助けてもらえますか?
:
あなたはここにGoogleのウェブサービスについての詳細を学ぶことができますか? Invoke-WebRequest _..... – Matt
Googleページで呼び出されたときに応答が何も役立たないように動的に入力された場合は、InternetExplorer.Applicationを使用する必要があります。あるいは、APIを使って別の検索エンジンに切り替えることもできます。 – wOxxOm
マイクロコグニティブサービス https://www.microsoft.com/cognitive-services/en-us/apis –