PowerShellを使用してHTMLテーブルをCSVに変換する方法


  1. Invoke-WebRequestを使用する方法:

    $url = "https://example.com/table.html"
    $outputFile = "output.csv"
    $response = Invoke-WebRequest -Uri $url
    $table = $response.ParsedHtml.getElementsByTagName("table")[0]
    $rows = $table.rows
    $csvContent = foreach ($row in $rows) {
    $rowData = foreach ($cell in $row.cells) {
        $cell.innerText
    }
    $rowData -join ","
    }
    $csvContent | Out-File -FilePath $outputFile
  2. HTMLAgilityPackを使用する方法:

    $url = "https://example.com/table.html"
    $outputFile = "output.csv"
    Add-Type -Path "HtmlAgilityPack.dll"
    $web = New-Object HtmlAgilityPack.HtmlWeb
    $html = $web.Load($url)
    $table = $html.DocumentNode.SelectSingleNode("//table")
    $rows = $table.SelectNodes("tr")
    $csvContent = foreach ($row in $rows) {
    $rowData = foreach ($cell in $row.SelectNodes("th|td")) {
        $cell.InnerText
    }
    $rowData -join ","
    }
    $csvContent | Out-File -FilePath $outputFile

これらの方法では、$urlに変換したいHTMLテーブルのURLを指定し、$outputFileに出力するCSVファイルのパスを指定します。HTMLテーブルの各行とセルを反復処理し、テキストをCSV形式に整形してファイルに書き込みます。

適切なURLと出力ファイルパスを指定して、PowerShellスクリプトを実行すると、HTMLテーブルがCSVファイルに変換されます。