C# WebBrowser控件-查看导航到网站时加载的文件

C# WebBrowser控件-查看导航到网站时加载的文件,c#,webbrowser-control,C#,Webbrowser Control,我试图从一个网站上提取一些信息。但当我导航到它时,它会在动态加载php页面之前使用javascript将我连接到服务器。我可以使用开发工具在Chrome中遵循顺序。我想用C#和Webbrowser控件复制它最简单,只需导航到网站即可。然后webbrowser控件必须包含所有javascript文件、动态加载的php页面中的文本等。但这是真的吗?它们存储在控件中的什么位置?我似乎找不到它们。重新创建在Chrome中实现的整个序列图需要大量的工作。然而,“从网站上提取一些信息”是很容易做到的 免责声

我试图从一个网站上提取一些信息。但当我导航到它时,它会在动态加载php页面之前使用javascript将我连接到服务器。我可以使用开发工具在Chrome中遵循顺序。我想用C#和Webbrowser控件复制它最简单,只需导航到网站即可。然后webbrowser控件必须包含所有javascript文件、动态加载的php页面中的文本等。但这是真的吗?它们存储在控件中的什么位置?我似乎找不到它们。

重新创建在Chrome中实现的整个序列图需要大量的工作。然而,“从网站上提取一些信息”是很容易做到的

免责声明:我假设这个问题是针对WPF的
WebBrower
控件的(对于WinForms几乎是一样的)

加载页面后,您可以使用以下方法获取
HTMLDocument

using mshtml; // <- don't forget to add the reference 

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();

        browser.Navigate("http://google.com/");
        browser.LoadCompleted += browser_LoadCompleted;
    }

    void browser_LoadCompleted(object sender, NavigationEventArgs e)
    {
        HTMLDocument doc = (HTMLDocument)browser.Document;
        string html = doc.documentElement.innerHTML.ToString();  
        // from here, you should be able to parse the HTML
        // or sniff the HTMLDocument (using HTML Agility Pack for instance)         
    }
}

使用mshtml;//你能给我一个URL让我试试吗?如果页面使用AJAX或其他动态JavaScript,那么判断元素何时准备好真的是不确定的。至少,您应该在
窗口启动后执行web报废。该页面已启动onload
。这可能是一个很好的起点。