利用cheerio
製作簡單的網頁爬蟲
1. 目標
- 完成對網站的標題資訊獲取
- 將獲取到的資訊輸出在一個新檔案
- 工具:
cheerio
,使用npm
下載npm install cheerio
-
cheerio
的API
使用方法和jQuery
的使用方法基本一致 - 如果熟練使用
jQuery
,那麼cheerio
將會很快上手
2. 程式碼部分
介紹: 獲取segment fault頁面的列表標題,將獲取到的標題列表編號,最終輸出到
pageTitle.txt
檔案裡
const https = require(`https`);
const fs = require(`fs`);
const cheerio = require(`cheerio`);
const url = `https://segmentfault.com/`;
https.get(url, (res) => {
let html = ``;
res.on(`data`, (data) => {
html += data;
});
res.on(`end`, () => {
getPageTitle(html);
});
}).on(`error`, () => {
console.log(`獲取網頁資訊錯誤`);
});
function getPageTitle(html) {
const $ = cheerio.load(html);
let chapters = $(`.news__item-title`);
let data = [];
let index = 0;
let fileName = `pageTitle.txt`;
for (let i = 0; i < chapters.length; i++) {
let chapterTitle = $(chapters[i]).find(`a`).text().trim();
index++;
data.push(`
${index}, ${chapterTitle}`);
}
fs.writeFile(fileName, data, `utf8`, (err) => {
if (err) {
console.log(`fs檔案系統建立新檔案失敗`, err);
}
console.log(`已成功將獲取到的標題放入新檔案${fileName}檔案中`)
})
}