【问题标题】:Using node and node-phantom to scrape AngularJS Application使用 node 和 node-phantom 抓取 AngularJS 应用程序
【发布时间】:2016-09-29 12:37:34
【问题描述】:

我设置了一个节点脚本来从 AngularJS 应用程序中抓取页面,然后生成测试所需的代码。它工作得很好,除了一件事。 ng-如果。由于 ng-if 从 dom 中删除元素,因此脚本永远不会看到这些代码块。我无法删除 ng-if。所以我想知道是否有某种方法可以在 node-phantom 请求页面和实际将所有内容加载到 phantoms dom 之间拦截 html。我希望做的只是将所有 ng-if 设置为 true,以便所有内容都可用。有人对此有任何想法吗?

编辑我使用的是 phantomjs-node 而不是 node-phantom。

【问题讨论】:

  • 您能否提供一个示例页面的链接,以便我在示例中使用它?
  • @Vaviloff - 我不确定你想要什么作为例子......你能更具体吗?如果你只是想要一个使用 ng-if 的例子,那么 plnkr.co/edit/UdT7mfG9P7mWmK7g2L4G?p=preview
  • 为什么要“拦截”呢?为什么不能像用户浏览网站一样编写爬虫?
  • @ArtjomB。我正在抓取内容来为我们的自动化测试工具 Selenium 和 Appium 生成页面对象模型。目的是加快创建自动化测试的过程。

标签: html angularjs node.js web-scraping phantomjs


【解决方案1】:

我的最终解决方案是抓取页面上的所有评论标签。然后过滤以找到包含 ng-ifs 的那些,并从这些标签中解析出变量名。然后我利用 Angular 的 $scope 并将所有变量设置为 true。强制显示隐藏在页面上的所有内容。

【讨论】:

    猜你喜欢
    • 2018-06-13
    • 2016-02-09
    • 1970-01-01
    • 1970-01-01
    • 2021-06-01
    • 2014-06-26
    • 1970-01-01
    • 2015-01-14
    • 2019-05-24
    相关资源
    最近更新 更多