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