2011-05-27 122 views
4

我用jsDOM的Node.js來抓取網頁並在其中執行JavaScript。但是如果頁面包含AJAX請求,它們不會被執行。用AJAX請求刮一個頁面

是否有一個選項可以在刮頁內執行AJAX調用?

+1

我肯定執行JavaScript(使用FetchExternalResources和jsdom的ProcessExternalResources功能) – 2011-05-27 13:40:46

+0

嘗試https://snapsearch.io/ – CMCDragonkai 2014-04-03 06:28:10

回答

2

您需要模擬XMLHTTPRequests。這是一個​​。它們不能在node.js中使用。

你將不得不弄清楚如何讓它與jsdom交談。 (但願只是附加一個XMLHttpRequest構造的window將修復它)

+0

謝謝你的提示! 其實我用jQuery刮頁面,他們似乎使用「假xhr」 - jqXHR。你的解決方案也解決了這個問題嗎? – 2011-05-27 19:37:02

+0

jqXHR不是假的xhr。它是一個XMLHTTPRequest的包裝器。你需要一個新的XMLHTTPRequest對象,因爲節點沒有任何Ajax概念 – Raynos 2011-05-27 19:57:45