我试图使用节点服务器从agular2应用程序中抓取一些信息。问题是我得到的响应是index.js文件,基本上是" loading ..."页面的一部分。
我正在使用npm请求或请求承诺包,如下所示:
var rp = require("request-promise");
rp('https://someurl.com')
.then((html) => {
// Do something with the response
})
.catch((err) => {
console.log(err);
})
但我无法弄清楚是否可以等待页面实际加载。我已经看过可能使用Angular Universal但是我需要在数据全部加载并且网站所有者反对使用Universal之后获取数据。
有没有让这项工作?
答案 0 :(得分:0)
首先,您需要获得完全呈现的页面。不幸的是,没有渲染过程就无法访问JS呈现的网页,但是我们可以使用像PhantomJS这样的“无头”浏览器来完成这个过程。
“无头浏览器是没有图形用户的Web浏览器 接口。无头浏览器提供对网页的自动控制 在类似于流行的网络浏览器的环境中“
在这里,我找到了一个很好的例子,可以让你继续前进:https://www.r-bloggers.com/web-scraping-javascript-rendered-sites/
另外,你可以查看这篇文章,关于Angularjs支持的网站的SEO,在“吐出HTML页面”下你可以找到有用的信息:https://www.yearofmoo.com/2012/11/angularjs-and-seo.html#sptting-out-the-html-pages