#やること
PowerShellでGoogle Trendから最新のトレンドをぶっこぬいてくる
#依存
- System.Net.Http (.NET 4.5以降)
- SGMLReader (https://github.com/MindTouch/SGMLReader)
#コード
Add-Type -AssemblyName System.Net.Http
Add-Type -Path "SgmlReaderDll.dllへのパス"
$hc = New-Object System.Net.Http.HttpClient
$stream = $hc.GetAsync("https://www.google.co.jp/trends/").Result.Content.ReadAsStreamAsync().Result
$my_streamreader = New-Object System.IO.StreamReader($stream, [System.Text.Encoding]::UTF8)
$my_sgml = New-Object Sgml.SgmlReader
$my_sgml.DocType = "HTML"
$my_sgml.IgnoreDtd = $true
$my_sgml.InputStream = $my_streamreader
$my_xdocument = [Xml.Linq.XDocument]::Load($my_sgml)
$data = [Xml]($my_xdocument)
$navi = $data.CreateNavigator()
$navi.Select('//*[contains(concat(" ", normalize-space(@class), " "), " hottrends-single-trend-title ")]') | %{
Write-Host $_
}
#今後の課題
- PowerShellにおいて、async/awaitを前提としたライブラリはどのように呼んでやるべきか
-
Invoke-WebRequest版も書く[追記:書きました]
#参考URL