本文給出使用一個用cheerio模塊提取html文件中指定內(nèi)容的例子,并說明具體步驟、涉及到的API、以及其它模塊。 cheerio模塊是一個類似jquery的模塊,具有相似的API、功能,能夠?qū)⒁粋€網(wǎng)頁解析為DOM,以及通過selector選擇元素,設(shè)置、獲取元素屬性。
目標是將task1-5中的所有題目、以及答案提取出來,以文本形式保存。最終提取出的效果如下。 這是題目文本:
Task 1: You will be given 10 minutes to read the text for the first time and then choose an appropriate answer for each of the following questions. 1. What’s the passage mainly about? A. How to learn online successfully. B. How to set up a learning goal. C. The future of online learning. D. The benefits of online learning. ...
這是答案文本:
Task 1: 1. D 2. C 3. C 4. D 5. A
注:其中答案保存在網(wǎng)頁中,但在網(wǎng)頁中沒有顯示出來。
1.1 找到目標元素
提取問題文本的整體思路:先找到包含題目的所有元素,然后再獲取這些元素的內(nèi)容即可。 通過chrome的devtool(或者firefox的firebug)看出,所有的目標元素為:hr元素的所有兄弟結(jié)點。cheerio的nextAll函數(shù)滿足需求,這個函數(shù)獲取當前結(jié)點的所有后續(xù)的兄弟結(jié)點。程序如下:
延伸閱讀
學習是年輕人改變自己的最好方式