Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未使用噩梦JS加载完整HTML_Javascript_Web Scraping_Nightmare - Fatal编程技术网

Javascript 未使用噩梦JS加载完整HTML

Javascript 未使用噩梦JS加载完整HTML,javascript,web-scraping,nightmare,Javascript,Web Scraping,Nightmare,我正在尝试使用梦魇JS抓取一个网站,当我尝试在浏览器中加载链接时,会呈现完整的HTML,但使用梦魇JS,我只能加载标签,而不会执行脚本 链接: 使用Nightnmare JS 我的代码是: 常量噩梦=噩梦() 基本上我想提取src,这可能是在脚本执行后加载的 如有任何帮助/建议,将不胜感激 谢谢你到底想从页面上刮取什么?您试图运行的脚本是什么?如果你提供更多的信息,我将能够解决你的问题。嗨,我已经解决了这个问题,我正在尝试获得标签内的视频源。但是这部分HTML是由标记内的脚本生成的,而CH又依赖

我正在尝试使用梦魇JS抓取一个网站,当我尝试在浏览器中加载链接时,会呈现完整的HTML,但使用梦魇JS,我只能加载标签,而不会执行脚本

链接:

使用Nightnmare JS

我的代码是:

常量噩梦=噩梦()

基本上我想提取src,这可能是在脚本执行后加载的

如有任何帮助/建议,将不胜感激


谢谢

你到底想从页面上刮取什么?您试图运行的脚本是什么?如果你提供更多的信息,我将能够解决你的问题。嗨,我已经解决了这个问题,我正在尝试获得标签内的视频源。但是这部分HTML是由标记内的脚本生成的,而CH又依赖于外部JavaScript库。我认为噩梦的问题在于它不会加载任何外部JavaScript(我猜)。因此,我所做的解决方案是获取HTML主体并提取第三方库的SRC,然后通过在jsDom配置中传递库来强制使用jsDom重新加载DoM。看来你成功了。很高兴你成功了。梦魇还有一个方法。inject(type,file),所以你应该能够用它加载你的脚本,这会更容易。好的,谢谢,我可以提供一个URL作为filepath吗?或者应该是本地文件?我认为应该是本地文件。
nightmare.goto(url)
  .evaluate(function () {
    return document.body.innerHTML
  })
  .end()
  .then(function (body) {
    $ = cheerio.load(body)
    $('script').each(function(){
      console.log($(this))
    }
    )