【问题标题】:how to get javascript code too with the actual source with Html Agility Pack如何使用 Html Agility Pack 的实际源代码获取 javascript 代码
【发布时间】:2016-04-02 12:29:00
【问题描述】:

我正在使用 Html Agility 包获取网站的源代码,这与我使用 firebug 检查时的代码不同。我搜索了很多东西,但仍然不清楚我应该做什么。源代码与我时的代码不同检查请告诉我如何使用该 Html 获取 javascript 代码。即使我在浏览器中禁用了 javascript,我仍然无法从源代码中获取 Javascript 代码。我正在使用

string url="";
HtmlDocument doc = new HtmlDocument();
                WebClient client = new WebClient();
                html = client.DownloadString(url);
                doc.LoadHtml(html);

要获取源代码,请告诉我是否也需要请求和响应方法来获取 JS 代码。

【问题讨论】:

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


    【解决方案1】:

    要扩展@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 等。Selenium 可以从NuGet 轻松安装到您的项目中。

    【讨论】:

    • 非常感谢我在我的项目中添加了 selenium 和 phantomJS 现在希望它可以工作
    • 我用过它,它也可以很好地给我额外的代码,但仍然没有给我我想要的 div 中的 ol 内的 li,我只能在我通过 firebug 检查时看到那个 div用 Firefox,或者给我建议我应该怎么做
    【解决方案2】:

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

    另见:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-16
      • 1970-01-01
      • 2017-08-27
      • 1970-01-01
      • 2013-04-30
      • 2011-08-02
      相关资源
      最近更新 更多