2016-11-24 83 views
0

我想索引一個食譜食譜頁面,並且實際的食譜作爲一個對象存儲在頁面中的JavaScript中。如何從我抓取的HTML頁面解析JavaScript對象?

一個例子網址:http://www.dagbladet.no/mat/oppskrift/bakt-potet-med-romme-og-blamuggostdressing

如果我在瀏覽器中鍵入打開開發工具:

console.dir(food.recipeItem.title) 

我拿到冠軍回來:

"Bakt potet med rømme- og blåmuggostdressing" 

所有美好和花花公子,正是我需要的。但是,我怎樣才能獲得該腳本的位置並在Node.js應用程序中解析它? Cheerio可能會幫助我找到劇本,但不會做更多的事情嗎?或者它會呢?我不知道該怎麼做,也不知道什麼是最符合計算效率的答案。或者最堅實。

回答

1

這很容易,所有你需要做的是解析返回的HTML。 如果您檢查返回的HTML(查看源:http://www.dagbladet.no/mat/oppskrift/bakt-potet-med-romme-og-blamuggostdressing),您會發現一個腳本標記,其中包含您在幾個javascript變量中所需的所有信息。這些變量包含JSON數據。由於腳本直接硬編碼到HTML文檔中,並且不是通過XHR或類似軟件獲得的,因此解析HTML是實現此目的的唯一方法。

所以基本上你有這3個步驟:

發送HTTP GET請求the link above

2.解析HTML字符串通過使用一些庫(提取腳本標籤檢查this鏈接以決定使用哪個庫)。

3.解析javascript字符串(從第2步提取的腳本)以提取JSON數據。檢查UglifyJS 庫的Node.js

+0

謝謝@博納!第2步是我正在努力的部分。我會用cheerio處理腳本標記,但是我需要解析腳本的內容嗎?以及如何做到這一點? –

+0

嗨,我做了一些更改,希望它可以幫助 – Borna

+0

謝謝,我會嘗試! –