如何使用Html Agility Pack获取实际源代码的javascript代码

时间:2016-04-02 12:29:00

标签: javascript c# parsing xpath html-agility-pack

我正在使用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代码。

2 个答案:

答案 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)

为此你需要一个真正的浏览器。考虑在PhantomJS的帮助下自动化浏览器(可以是无头的 - 请参阅selenium。)

另见: