PowerShell/HTMLのtableタグをスクレイピング
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
#navi(../)
* PowerShellでHTMLのtableタグをスクレイピング・解析する・...
tableタグで作成された表を解析しcsvなどにしたい場合はあり...
本資料では、単純なHTMLを用意しHTMLファイルのスクレイピン...
#htmlinsert(win_ads_top.html)
#contents
* 使用したWindowsとPowerShell [#oe2a378c]
-Windows
#ref(ver.png)
#br
-PowerShell
PS C:\> $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 18362 145
* 関連記事 [#h2312120]
curlやwgetのようにURLを指定して情報を取得する場合は、以下...
-[[PowerShellでwgetやcurlのようにウェブページを取得する>P...
JSON形式の場合は以下の記事を参考にしてください。
-[[PowerShellでハッシュからJSON,JSONからPSCustomObjectに...
JSON形式については、仮想通貨取引所が公開しているパブリッ...
-[[仮想通貨(暗号通貨)メモ>https://cryptocurrency.just4fun...
* [xml]を使用してtableタグ内の情報をスクレイピングする [#...
以下のHTMLファイルを用意しました。
#ref(10.png)
''sample.html'' &ref(sample.zip);
<html>
<head>
<title>sample</title>
</head>
<body>
sample table
<table>
<tr>
<th>No</th><th>value1</th><th>value2</th>
</tr>
<tr>
<td>1</td><td>11</td><td>12</td>
</tr>
<tr>
<td>2</td><td>21</td><td>22</td>
</tr>
<tr>
<td>3</td><td>31</td><td>32</td>
</tr>
</table>
</body>
</html>
htmlファイルをSystem.Xml.XmlDocumentオブジェクトとして読...
$obj = [xml](Get-Content ファイル名)
上記の通り、htmlファイルをXmlDocumentオブジェクトに読み込...
* HTMLファイルをXmlDocumentオブジェクトに読み込み操作する...
以下は、用意したsample.htmlをDドライブ直下に置いてPowerSh...
+ htmlファイルを読み込みます。
PS D:\> $obj = [xml](Get-Content D:\sample.html)
#br
+ 読み込んだ情報($objに格納)を表示するとhtmlタグがあるこ...
PS D:\> $obj ...
html
----
html
#br
+ htmlタグを指定し表示しています。headとbodyがあることが...
PS D:\> $obj.html ...
head body
---- ----
head body
#br
+ bodyタグを指定すると、テキストとtableタグがあることが確...
PS D:\> $obj.html.body ...
#text table
----- -----
... table
#br
+ textの内容を取ってみます。~
HTML内のテキストを取得することができました。
PS D:\> $obj.html.body.'#text' ...
sample table
#br
+ tableタグを指定すると、trが4つ存在しているのが確認でき...
PS D:\> $obj.html.body.table ...
tr
--
{tr, tr, tr, tr}
PS D:\> $obj.html.body.table.tr.count
4
#br
+ 実際にtr分ループしtr内の要素を表示してみます。~
以下のスクリプトをコピー&ペーストしEnterキーを押して実行...
$table = $obj.html.body.table
$tr_count = $table.tr.Count
for ($i=0; $i -lt $tr_count; $i++) {
if ($i -eq 0) { $table.tr[$i].th } else { $table.tr[$i...
}
#ref(11.png)
#br
+ csv文字列としてとして出力してみます。
$table = $obj.html.body.table
$tr_count = $table.tr.Count
for ($i=0; $i -lt $tr_count; $i++) {
if ($i -eq 0) { $t = $table.tr[$i].th } else { $t = $t...
$t[0] + "," + $t[1] + "," + $t[2]
}
#ref(12.png)
以上、XmlDocumentオブジェクトを使って、HTMLをスクレイピン...
#htmlinsert(win_ads_btm.html)
終了行:
#navi(../)
* PowerShellでHTMLのtableタグをスクレイピング・解析する・...
tableタグで作成された表を解析しcsvなどにしたい場合はあり...
本資料では、単純なHTMLを用意しHTMLファイルのスクレイピン...
#htmlinsert(win_ads_top.html)
#contents
* 使用したWindowsとPowerShell [#oe2a378c]
-Windows
#ref(ver.png)
#br
-PowerShell
PS C:\> $PSVersionTable.PSVersion
Major Minor Build Revision
----- ----- ----- --------
5 1 18362 145
* 関連記事 [#h2312120]
curlやwgetのようにURLを指定して情報を取得する場合は、以下...
-[[PowerShellでwgetやcurlのようにウェブページを取得する>P...
JSON形式の場合は以下の記事を参考にしてください。
-[[PowerShellでハッシュからJSON,JSONからPSCustomObjectに...
JSON形式については、仮想通貨取引所が公開しているパブリッ...
-[[仮想通貨(暗号通貨)メモ>https://cryptocurrency.just4fun...
* [xml]を使用してtableタグ内の情報をスクレイピングする [#...
以下のHTMLファイルを用意しました。
#ref(10.png)
''sample.html'' &ref(sample.zip);
<html>
<head>
<title>sample</title>
</head>
<body>
sample table
<table>
<tr>
<th>No</th><th>value1</th><th>value2</th>
</tr>
<tr>
<td>1</td><td>11</td><td>12</td>
</tr>
<tr>
<td>2</td><td>21</td><td>22</td>
</tr>
<tr>
<td>3</td><td>31</td><td>32</td>
</tr>
</table>
</body>
</html>
htmlファイルをSystem.Xml.XmlDocumentオブジェクトとして読...
$obj = [xml](Get-Content ファイル名)
上記の通り、htmlファイルをXmlDocumentオブジェクトに読み込...
* HTMLファイルをXmlDocumentオブジェクトに読み込み操作する...
以下は、用意したsample.htmlをDドライブ直下に置いてPowerSh...
+ htmlファイルを読み込みます。
PS D:\> $obj = [xml](Get-Content D:\sample.html)
#br
+ 読み込んだ情報($objに格納)を表示するとhtmlタグがあるこ...
PS D:\> $obj ...
html
----
html
#br
+ htmlタグを指定し表示しています。headとbodyがあることが...
PS D:\> $obj.html ...
head body
---- ----
head body
#br
+ bodyタグを指定すると、テキストとtableタグがあることが確...
PS D:\> $obj.html.body ...
#text table
----- -----
... table
#br
+ textの内容を取ってみます。~
HTML内のテキストを取得することができました。
PS D:\> $obj.html.body.'#text' ...
sample table
#br
+ tableタグを指定すると、trが4つ存在しているのが確認でき...
PS D:\> $obj.html.body.table ...
tr
--
{tr, tr, tr, tr}
PS D:\> $obj.html.body.table.tr.count
4
#br
+ 実際にtr分ループしtr内の要素を表示してみます。~
以下のスクリプトをコピー&ペーストしEnterキーを押して実行...
$table = $obj.html.body.table
$tr_count = $table.tr.Count
for ($i=0; $i -lt $tr_count; $i++) {
if ($i -eq 0) { $table.tr[$i].th } else { $table.tr[$i...
}
#ref(11.png)
#br
+ csv文字列としてとして出力してみます。
$table = $obj.html.body.table
$tr_count = $table.tr.Count
for ($i=0; $i -lt $tr_count; $i++) {
if ($i -eq 0) { $t = $table.tr[$i].th } else { $t = $t...
$t[0] + "," + $t[1] + "," + $t[2]
}
#ref(12.png)
以上、XmlDocumentオブジェクトを使って、HTMLをスクレイピン...
#htmlinsert(win_ads_btm.html)
ページ名: