tableをtd内のtextareaも含めて一括取得したい
※ タイトルを変更
旧タイトル:ChromeのシナリオでtableのouterHTMLを取得したい
Ver.7.2系でtableのouterHTMLを「値の取得」したいです。
Chromeです。
お知恵を拝借させてください。
経緯と思考回路をつらつらと書き出してみました。
目的ベースで「要するにこうなればいいんでしょ」な別案とかでも構いません。
テーブルA
- 「テーブルスクレイピング」で一瞬でCSVに落とせた
テーブルB
- 「テーブルスクレイピング」だと、td内の地のテキストしか取得されない
- td > span > textareaのテキストも取得したい
- 「値の取得」だとtableタグの内側しか取得されない
- tableタグごと掴めれば、Excelに貼り付けることで、td > span > textareaのテキストのテキストもそれなりに表示される
- 貼り付けフローは面倒そう、、見栄えも気になる、、ホントはもっとスマートに攻めたい、、
- とりあえず目指す方向性の1つとして、テーブルの開始終了タグを含めて「値の取得」したい
- 「文字列の連結(nつ)」で前後に<table></table>を繋げば良い話ではある
- せっかくなので、ぴったりなXPathを見出したい
- 実はカンタンなことなのかも
後続処理での用途
- 1件1レコードのCSVに出力している
- 1レコードをExcel2013製のカード型レイアウトに反映して、目視が必要な箇所だけを人がチェックする
- ここまでは概ね理想通り
- 今回、2か所のtableはそのままの表で見たいという現場ニーズに対応するもの
- tableを1セル毎に変数に取得してレコード内にブチ込むと、まあまあ煩雑
- セル内は自然文で、文字数が際限なく、行数が一定でない
- 2か所のtableは別シートに表示することを検討中
- レコードと同期してtableを順送りするしくみも別途考えねば、、
調べたこと
- このへんの「コンテキストノード自身」、.(ドット)、Selfが該当しそう
XPath チートシート
http://aoproj.web.fc2.com/xpath/XPath_cheatsheets_v2.pdf
3. ロケーションパス (2) 1 | TECHSCORE(テックスコア)
https://www.techscore.com/tech/XML/XPath/XPath3/xpath03
XPathについての概略
https://www.takamagahara.info/2006/0104.htm
試したこと
- 目的の画面では、これらは同じ結果だった
//table[@class="aaa"]
//table[@class="aaa"]/ancestor-or-self::table
//table[@class="aaa"]/.
- 慣れない表記に挑んだものの、ここごとく玉砕、、
- 悔しいことに、目的のtableをすっぽり囲むdivとかがない
//table[@class="aaa"]/..
- 目的のtableがすっぽり入ってるけど、直前のJavaScriptと直後のtableも取得されちゃう
- ここから正規表現で不要な部分をまとめてカット、タグを置き換えてCSVに整形するのが無難か
ひとまず手が届く範囲で良さげなしくみを作り始めているものの、なるべくカッコ良くてスピーディーでカンタンなものに仕上げたいです。
この質問は解決済みのためクローズされています。
anothersolution ベストアンサーとして選択しました
回答とコメントは、会員登録(無料)で閲覧できるようになります。
新規登録