捕获web浏览器显示页面的HTML源代码使用htmllagility

本文关键字:源代码 HTML htmllagility web 浏览器 显示 捕获 | 更新日期: 2023-09-27 18:01:51

我想知道在c#应用程序中捕获Web浏览器上显示的html内容的方法。我最初使用的是HTML敏捷包。如果我的知识是正确的,我的代码下面

htmlWeb hw = new HtmlWeb();
        if (txtCurrentURL.Text == "")
        {
            MessageBox.Show(" Enter Web Address to Process ");
        }
        else
        {
            HtmlAgilityPack.HtmlDocument htmlDoc = hw.Load(@txtCurrentURL.Text);
            if (htmlDoc.DocumentNode != null)
            {
            try
            { foreach (HtmlNode text in htmlDoc.DocumentNode.SelectNodes(txtExpression.Text))
                    {
                        _items.Add(text.InnerHtml);
                        richTextResults.Text = text.InnerHtml;
                    } }
              catch
              {   MessageBox.Show(" No Usefull Data found");
              }
                  lstBxResult.DataSource = _items;
            }
        }

txtCurrentUR.Text为我的Web浏览器当前显示的url地址。

如果我没有错,从htmllagility的结果是我们通过使用htmllagility类连接到提到的URL,而不是通过访问web服务器的内容,我是对的吗?. 所以我的问题是,如果页面需要任何登录或页面访问只有登录后,如收件箱,用户帐户页面没有显示在敏捷错误。但是我们现在在web浏览器中可以很容易地显示这些,我想捕获显示在浏览器上的数据,而不是通过连接URl和使用Agility捕获数据…但是我不知道怎么做,请帮帮我吧??

捕获web浏览器显示页面的HTML源代码使用htmllagility

如果我理解正确的话,您将要使用的是cookie集合。

private HtmlWeb CreateWebRequestObject()
{
    HtmlWeb web = new HtmlWeb();
    web.UseCookies = true;
    web.PreRequest = new HtmlWeb.PreRequestHandler(PreRequestStuff);
    web.PostResponse = new HtmlWeb.PostResponseHandler(AfterResponseStuff);
    web.PreHandleDocument = new HtmlWeb.PreHandleDocumentHandler(PreHandleDocumentStuff);
    return web;
}