2017-02-14 57 views
0

我正在嘗試使用npm請求和cheerio來拉動網頁並解析它們的html。這適用於根據請求加載html的情況。但我遇到了一個問題,即網站首先加載加載屏幕,然後在一段時間後用新的信息/元素更新頁面。閱讀正文前的npm請求等待

部分代碼:

var url = 'website with loading screen prior to content.com'; 
var request = require('request'); 
request(url, function (error, response, body) { 
    if (!error && response.statusCode == 200) { 
    console.log(body) // Show the HTML for the Google homepage. 
    } 
}) 

我想什麼 - 不必等待一個特定的元素顯示在頁面上,然後讀身體的能力,要麼請求。或能夠等待一個固定的秒數,然後閱讀身體

其他選項 - 它可能不可能與npm請求,這很好。如果是這種情況,請您指出正確的方向。我正在考慮的其他選項是使用webdriver.io或phantomjs。對此有沒有推薦的行動方案?

回答

0

不幸的是,在獲得響應之前,沒有辦法將request配置爲在請求發起之後「等待」。最好的辦法是檢查PhantomJS。這是一個無頭瀏覽器,您可以使用它來加載和渲染頁面,然後通過javascript訪問動態生成的內容。

查看這個answer的簡單例子。

+0

謝謝,我列出phantomjs作爲我的問題的一個可能的選項。我實際上最終取得了一些成功。 –

+1

@alex_milhouse很酷。這是一個很好的包裝。 – jordanwillis