0

情報を取得するために Web ページの HTML を解析しています。私のウェブページには、<table>アクセスしようとしている があります。しかし、次のコードを書くと、0 要素が返されます。

WebBrowser csexBrowser = new WebBrowser();
HtmlElementCollection table2 = this.csexBrowser.Document.GetElementsByTagName("table");

ここで、table2 には何もありません。0 要素。私は winforms を使用しています。

編集:これはリンクです。名前を検索すると、いくつかの結果が表に表示されます。

4

2 に答える 2

0

あなたが提供したリンクにアクセスする前に、検証ステップがあります。http://www.nsopw.gov/en-US/Search/Verification文書には表がありません。

最初に確認 URL を渡してもよろしいですか?

[編集]

これを試してください:

public Form1()
{
    InitializeComponent();
    WebBrowser csexBrowser = new WebBrowser();

    //here we say what we want to do when the Navigated event occurs
    csexBrowser.Navigated += csexBrowser_Navigated;

    //this takes some time
    csexBrowser.Navigate("http://www.nsopw.gov/en-US/Search");
}

void csexBrowser_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
    //here the document is loaded and we will find the table
    HtmlElementCollection table2 = ((WebBrowser)sender).Document.GetElementsByTagName("table");
}
于 2012-12-12T21:19:49.310 に答える
0

どうしてもブラウザーでナビゲートしたい場合は、ナビゲーションが完了するまで待つ必要があります。個人的には、この方法に加えて、ほとんどの人が使用するイベント ファイアが、私が見つけた複数のトリガーになる可能性があるのが嫌いです。

これを行う:

csexBrowser.Navigate(Url);
        while (csexBrowser.ReadyState != WebBrowserReadyState.Complete)
        {
            Application.DoEvents();
        }

指定された URL に移動するだけで、ページの読み込みが完了するまで続行しません。やった、やった。

于 2012-12-13T12:13:24.663 に答える