初めての投稿になります。情報に不足があればご指摘頂けますと幸いです。
やりたいこと:
chromeで特定のサイトのスクレイピングをしたい
詳細:
サイトの各ページには"投稿"(※画像で言うところのHoge)のような要素が複数表示されており、それぞれをまず子要素として抽出し、それを「繰り返し(コレクションの各要素)」で、さらにそれぞれの要素から"投稿内容"や"投稿日時"(※画像で言うところのHoge1やHoge2)をテキストで取得し、DataTableに格納して、CSVなどで出力するイメージです。
困っていること:
画像の青枠の部分を取得するときの指定がうまくできず悩んでおります。
今は繰り返しの中でFindChildrenを行い、ターゲットにHogeの各要素(item)を指定し、フィルターで取り出そうとしています。
その際、例えばHoge1であれば、
"<webctrl tag='div' class='Hoge1' />"
でうまく取得できることを確認しています。
青枠を取得するために、フィルターに以下のような設定をしています。
"<webctrl tag='div' class='Hoge1 />
<webctrl tag='div' />
<webctrl tag='span' idx='2' />"
このフィルターの設定でうまくいくと思ったのですが、実行してみると以下のようなエラーが表示されます。
子要素を探す ‘DIV’: セレクター、フィルター、およびスコープの指定した組み合わせは、サポートされていません。
改行が原因かと思い、以下のようにしてみたのですが、結果は同じでした。
"<webctrl tag='div' class='Hoge1 />" + Environment.NewLine+
"<webctrl tag='div' />" + Environment.NewLine +
"<webctrl tag='span' idx='2' />"
どうやらフィルターを複数行にしてしまったのが良くなかったのではないかと思っているのですが、原因がお分かりになる方はいらっしゃいますでしょうか…。
また、複数行にしてしまったのが原因な場合は、FindChildrenを3回繰り返すことで実装自体は出来ると思うのですが、他に効率の良い取得方法があればご教示頂けますと幸いです。
実行環境:
Studio 2021.10.4 - 2021/12/06
Enterprise License
サービス モードのインストールライセンス プロバイダー: Orchestrator
アクティベーション ID:Microsoft Windows 10 Pro 64 ビット
5.0.12
よろしくお願いします。