「東雲 忠太郎」の平凡な日常のできごと

「東雲 忠太郎」の平凡な日常のできごと

2024.04.20
XML
カテゴリ: C#.NET


特定の要素の文字列を取得するには、`WebBrowser` コントロールでページを読み込んだ後、JavaScript を使用して要素を検索し、そのテキストコンテンツを取得する方法があります。


以下に、C# WPF で `WebBrowser` コントロールに表示されたページ内の特定要素の文字列を取得するサンプルコードを示します。




```xml

<Window x:Class="YourNamespace.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        Title="WebBrowser Sample" Height="350" Width="500">

    <Grid>

        <Grid.RowDefinitions>

            <RowDefinition Height="Auto"/>

            <RowDefinition Height="*"/>

        </Grid.RowDefinitions>

        <Button Content="Get Element Text" Click="GetElementText_Click" />

        <WebBrowser x:Name="webBrowser" Grid.Row="1" />

    </Grid>

</Window>

```


次に、`MainWindow.xaml.cs` に次のコードを追加します。


```csharp

using System;

using System.Windows;

using System.Windows.Controls;


namespace YourNamespace

{

    public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();


            // WebBrowser にページを読み込む

            webBrowser.Navigate("https://example.com");

        }


        private void GetElementText_Click(object sender, RoutedEventArgs e)

        {

            // JavaScript を使用してページ内の特定要素のテキストを取得する

            string script = "document.getElementById('elementId').innerText;";

            string elementText = (string)webBrowser.InvokeScript("eval", new object[] { script });


            // 取得したテキストを表示する

            MessageBox.Show(elementText);

        }

    }

}

```


このコードでは、`GetElementText_Click` メソッドがボタンクリックイベントのハンドラとして設定されています。このメソッドでは、`InvokeScript` メソッドを使用して JavaScript を実行し、特定の要素のテキストを取得しています。JavaScript の文字列は、ページ内の特定の要素の ID を使用してその要素を取得し、その要素の `innerText` を返します。


この方法を使用すると、`WebBrowser` コントロールに表示されたページから特定の要素のテキストを取得できます。ただし、要素が他の要素内にネストされている場合や、ページが非同期的にロードされる場合は、より複雑なロジックが必要になる可能性があります。






お気に入りの記事を「いいね!」で応援しよう

Last updated  2024.04.20 13:06:33


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x

© Rakuten Group, Inc.
Design a Mobile Website
スマートフォン版を閲覧 | PC版を閲覧
Share by: