我正在嘗試使用節點服務器從agular2應用程序中刮取一些信息。問題是我得到的響應是index.js文件,本質上是頁面的「loading ...」部分。如何向Angular2網站發送HTTP請求(用於抓取目的)?
我使用的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的情況下獲取數據。
有沒有辦法讓這項工作?
你聽說過類似HATEOAS的電話嗎?鑑於該應用程序是基於Angular2的,您可以對其AJAX調用規則/語法進行反向工程,然後通過直接要求包含AJAX參數的url來檢索json格式的數據。然而,這種方法只有在網站是對所需數據的「代理」時纔有意義。如果您想要檢索以您在網站上直接進行的操作爲條件的數據,則必須使用動態網頁抓取技術,如下面的Dmytro Medvid所解釋的。 – Kanak