我编写的代码使用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;
}
答案 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;
}