如何在没有URL的情况下加载html源代码?

时间:2014-04-28 21:03:08

标签: c# html

我编写的代码使用HtmlAgilityPack来获取给定URL的id和xpath。我想使用该代码,但我想要使用它的网站只有一个URL。基本上,网站中的内容会更改,但URL不会更改。所以我可以访问我想要访问的所有页面但是如何在不使用C#中的URL的情况下下载该页面的HTML源代码?

internal Dictionary<string, string> GetIDsAndXPaths(string url)
{
    var web = new HtmlWeb();
    var webidsAndXPaths = new Dictionary<string, string>();
    var doc = web.Load(url);
    var nodes = doc.DocumentNode.SelectNodes("//*[@id]");
    if (nodes == null) return webidsAndXPaths;
    // more code to get ids and such
    return webidsAndXPaths;
}

1 个答案:

答案 0 :(得分:1)

您可以使用WebDriver导航要获取页面源的页面。然后,一旦WebDriver在页面上,您就可以让WebDriver下载页面源代码。通过名为“page”的变量将页面源传递给web.Load。

internal Dictionary<string, string> GetIDsAndXPaths()
{
    var web = new HtmlWeb();
    var webidsAndXPaths = new Dictionary<string, string>();
    var page = driver.PageSource; // Gets the source of the page last loaded by the browser

    const string path = @"C:\temp\myHtml.html";
    var sw = new StreamWriter(path, false);
    sw.Write(page);
    sw.Close();
    const string url = path;
    var doc = web.Load(page);
    var nodes = doc.DocumentNode.SelectNodes("//*[@id]");
    if (nodes == null) return webidsAndXPaths;
    // more code to get ids and such
    return webidsAndXPaths;
}