如何使用C#获取页面的html源代码?

时间:2012-07-02 17:13:12

标签: c# html screen-scraping web-scraping

我正在使用C#构建应用程序以从我的银行帐户中检索信息。到目前为止,我可以通过https://accesd.desjardins.com连接到我的银行帐户。我首先在另一页上输入我的卡号而不是我的密码。像这样:

    private void newweb_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        switch (iStages)
        {
            case 1:
                newweb.Document.GetElementById("card_num").SetAttribute("value", strCardNum);
                newweb.Document.GetElementById("ch_but_logon").InvokeMember("click");
                iStages = 2;
                break;
            case 2:
                newweb.Document.GetElementById("passwd").SetAttribute("value", psswd);
                newweb.Document.GetElementById("ch_but_logon").InvokeMember("click");
                iStages = 3;
                break;
        }

    }

但是一旦我在我的银行帐户页面上,我就不能再使用newweb.Document.GetElementById(..)来检索任何html标签或元素。我想得到我的总金额。但是当我尝试获取页面的任何元素时,我总是得到一个null元素。当我试图在Chrome上获取该页面的html源代码时,我得到了一个页面的html源代码,表示我没有权限查看该页面的源代码(这是我的银行帐户的代码) 。我想知道如何用C#获取源代码。肯定有一种方法,因为浏览器可以显示网页。它必须已阅读源代码才能显示它......

由于

2 个答案:

答案 0 :(得分:1)

这就是你要找的东西:

mshtml.HTMLDocument htmlDoc = (mshtml.HTMLDocument)wb.Document.DomDocument;
var yourValue = htmlDoc.getElementById("[SomeID");

答案 1 :(得分:0)

我之前遇到过类似的事情。您需要确保随每个Web请求发回cookie。银行存储用作您已登录的标记的Cookie。此外,该连接使用SSL,因此请确保您已在代码中考虑到这一点。