Node.js學習之路22——利用cheerio製作簡單的網頁爬蟲

Karuru發表於2019-02-16

利用cheerio製作簡單的網頁爬蟲

1. 目標

  • 完成對網站的標題資訊獲取
  • 將獲取到的資訊輸出在一個新檔案
  • 工具: cheerio,使用npm下載npm install cheerio
  • cheerioAPI使用方法和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}檔案中`)
    })
}

相關文章