0

我正在解析网页的 HTML 以获取一些信息。在我的网页中,我有一个<table>我正在尝试访问的内容。但是当我编写以下代码时,返回 0 个元素:

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

在这里,table2 什么都没有。0 个元素。我正在使用 winforms。

编辑:这是链接。如果您搜索名称,它会在表格中显示一些结果。

4

2 回答 2

0

如果您坚持使用浏览器导航,则必须等待导航完成。就我个人而言,我讨厌这种方法加上我发现的大多数人追求的多触发事件触发。

做这个:

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

只需导航到给定的 url,直到页面完成加载后才继续。做完了。

于 2012-12-13T12:13:24.663 回答
0

在访问您提供的链接之前有一个验证步骤。在http://www.nsopw.gov/en-US/Search/Verification文档中,没有表格。

你确定你先通过验证网址吗?

[编辑]

请试试这个:

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 回答