当前位置: 首页 > 面试题库 >

在HtmlAgilityPack中运行脚本

李昱
2023-03-14
问题内容

我正在尝试抓取一个按如下方式工作的特定网页。

首先加载页面,然后运行某种javascript来获取填充页面所需的数据。我对这些数据感兴趣。

如果我使用HtmlAgilityPack获取页面-该脚本不会运行,那么我得到的基本上是空白页面。

有没有一种方法可以强制它运行脚本,以便我可以获取数据?


问题答案:

您将获得服务器返回的内容-与Web浏览器相同。然后,Web浏览器将运行脚本。HTML Agility Pack仅是HTML解析器-
它无法解释javascript或将其绑定到文档的内部表示形式。如果要运行脚本,则需要Web浏览器。完整的“无头”网络浏览器将是您问题的完美答案。那是结合了HTMLhtml" target="_blank">解析器,javascript解释器和模拟浏览器DOM的模型的所有东西,它们一起工作。基本上,这是一个Web浏览器,除了没有呈现部分。目前,还没有一种东西可以完全在.NET环境下工作。

最好的选择是使用WebBrowser控件,并在程序控制下在InternetExplorer中实际加载和运行页面。这不会很快或很漂亮,但是它将满足您的需要。

另请参见我对类似问题的回答:使用.Net加载DOM并在服务器端执行javascript,其中讨论了.NET中执行此操作的可用技术。不幸的是,大多数组件现在都存在,但是还不存在,或者没有以正确的方式集成。



 类似资料:
  • 问题内容: 我正在尝试在Dockerfile的构建过程中运行脚本。但这似乎不起作用。 我尝试过这种方式: 也这样: 并且也执行我正在运行的容器: 似乎没有任何作用。 你知道怎么做吗? 问题答案: 和是执行脚本的两种不同方式。 意味着它将创建一个中间容器,运行脚本并将该容器的新状态冻结在新的中间映像中。此后该脚本将不再运行:您的最终图像应该反映出该脚本的结果。 表示您的映像(尚未执行脚本)将创建一个

  • Html Agility Pack 是CodePlex 上的一个开源项目。它提供了标准的DOM API 和XPath 导航--即使 HTML 不是适当的格式! 示例代码: HtmlDocument doc = new HtmlDocument(); doc.Load("file.htm"); foreach(HtmlNode link in doc.DocumentElement.SelectN

  • 问题内容: 我有一个C ++程序,需要从PHP脚本中获取数据,对其进行处理,然后将数据返回给我的PHP脚本。 如何将值从PHP传递到C ++? 您如何运行C ++脚本?您必须先对其进行一些编译吗? 您如何从C ++脚本中获取值? 问题答案: 1。 如何将值从PHP传递到C ++? 回答: 在php文件中,您可以使用 exec 函数来执行C ++二进制文件。例: 2。 您如何运行C ++脚本?您必须

  • 问题内容: 我想从下面的程序中运行一个shell脚本,但它似乎无能为力。我已经直接在linux终端中运行了相同的命令,它运行正常,所以我猜这是我的Java代码。如您所见,我首先使用PrintWriter将命令写入Shell脚本,但我希望这不会影响Shell脚本本身的运行。任何帮助,将不胜感激! 问题答案: 您应该使用返回的结果。 将命令作为单独的进程执行,并返回类型为的对象。您应该调用以便程序等待

  • 问题内容: 当我尝试从PyCharm IDE运行程序时,一切正常,但是如果我输入Fedora: 在shell提示中,我从1个模块收到导入错误。 当从IDE启动时,PyCharm可以执行哪些操作以使解释器找到我的依赖项?如何获得脚本以找到其依赖项,以便可以使用singe命令启动它? 问题答案: 有一些可能的原因可能导致这种情况: 相同的python解释器?检查与 它是同一工作目录吗?检查与 中的差异

  • 问题内容: 我有一个普通的脚本,我想在Java中执行它。有人可以为我提供更多有关如何实现此目的的文档/示例吗? 问题答案: 基本的Java + Groovy集成: 请参阅本文以获取更多从Java调用Groovy的方法 PS: 您需要包括如在Java程序中,例如: