我正在使用Html Agility包来获取一个网站的源代码,这与我用firebug.i检查时的代码不同,搜索了很多东西,但仍然没有清楚我应该做什么。来源不同于我的代码检查请告诉我如何使用该Html获取JavaScript代码。即使我在浏览器中禁用javascript,我仍然无法获得源代码中的Javascript代码。我正在使用
string url="";
HtmlDocument doc = new HtmlDocument();
WebClient client = new WebClient();
html = client.DownloadString(url);
doc.LoadHtml(html);
获取源代码告诉我是否需要一个请求和响应方法来获取JS代码。
答案 0 :(得分:2)
要扩展@alecxe答案,您可以使用Selenium *加载目标网页,就像真正的浏览器一样,然后将结果传递给HtmlAgilityPack进行进一步处理:
using OpenQA.Selenium;
.....
IWebDriver driver = new PhantomJS.PhantomJSDriver();
driver.Navigate().GoToUrl(url);
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(driver.PageSource);
或者,您可以直接使用Selenium运行查询(XPath或CSS选择器),例如:
var result = driver.FindElements(By.XPath("your query"));
//print HTML of the returned elements
foreach (var item in result)
{
Console.WriteLine(item.GetAttribute("outerHTML"));
}
*)首先需要下载Selenium,以及驱动程序,即PhantomJS,Firefox等。可以从NuGet轻松地将Selenium安装到您的项目中。
答案 1 :(得分:1)