Node.js 利用cheerio制作簡(jiǎn)單的網(wǎng)頁(yè)爬蟲(chóng)示例
本文介紹了Node.js 利用cheerio制作簡(jiǎn)單的網(wǎng)頁(yè)爬蟲(chóng)示例,分享給大家,具有如下:
1. 目標(biāo)
- 完成對(duì)網(wǎng)站的標(biāo)題信息獲取
- 將獲取到的信息輸出在一個(gè)新文件
- 工具: cheerio,使用npm下載npm install cheerio
- cheerio的API使用方法和jQuery的使用方法基本一致
- 如果熟練使用jQuery,那么cheerio將會(huì)很快上手
2. 代碼部分
介紹: 獲取segment fault頁(yè)面的列表標(biāo)題,將獲取到的標(biāo)題列表編號(hào),最終輸出到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('獲取網(wǎng)頁(yè)信息錯(cuò)誤');
});
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(`\n${index}, ${chapterTitle}`);
}
fs.writeFile(fileName, data, 'utf8', (err) => {
if (err) {
console.log('fs文件系統(tǒng)創(chuàng)建新文件失敗', err);
}
console.log(`已成功將獲取到的標(biāo)題放入新文件${fileName}文件中`)
})
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- node.js爬蟲(chóng)框架node-crawler初體驗(yàn)
- Node.js爬蟲(chóng)如何獲取天氣和每日問(wèn)候詳解
- node.js 基于cheerio的爬蟲(chóng)工具的實(shí)現(xiàn)(需要登錄權(quán)限的爬蟲(chóng)工具)
- 基于node.js實(shí)現(xiàn)爬蟲(chóng)的講解
- node.js學(xué)習(xí)筆記之koa框架和簡(jiǎn)單爬蟲(chóng)練習(xí)
- 手把手教你用Node.js爬蟲(chóng)爬取網(wǎng)站數(shù)據(jù)的方法
- 淺談Node.js爬蟲(chóng)之網(wǎng)頁(yè)請(qǐng)求模塊
- node.js做一個(gè)簡(jiǎn)單的爬蟲(chóng)案例教程
相關(guān)文章
nodejs清空/刪除指定文件夾下面所有文件或文件夾的方法示例
這篇文章主要介紹了nodejs清空/刪除指定文件夾下面所有文件或文件夾的方法,通過(guò)兩個(gè)具體案例形式分析了node.js同步刪除文件/文件夾,以及異步刪除文件/文件夾的相關(guān)實(shí)現(xiàn)技巧,涉及遞歸遍歷與文件判斷、回調(diào)等相關(guān)操作,需要的朋友可以參考下2023-04-04
Linux下為Node.js程序配置MySQL或Oracle數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了Linux下為Node.js程序配置MySQL或Oracle數(shù)據(jù)庫(kù)的方法,這里默認(rèn)已經(jīng)裝配好了Node環(huán)境然后我們利用npm包管理工具來(lái)進(jìn)行配置,需要的朋友可以參考下2016-03-03
node.js使用免費(fèi)的阿里云ip查詢獲取ip所在地【推薦】
這篇文章主要介紹了node.js使用免費(fèi)的阿里云ip查詢獲取ip所在地的相關(guān)知識(shí),非常不錯(cuò),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2018-09-09
Node.js+pm2+ssh2模塊實(shí)現(xiàn)簡(jiǎn)單的自動(dòng)化部署腳本
本文將介紹如何使用Node.js和ssh2模塊實(shí)現(xiàn)一個(gè)簡(jiǎn)單的部署腳本,將本地的項(xiàng)目文件上傳到遠(yuǎn)程服務(wù)器上,我們將使用dotenv模塊來(lái)管理環(huán)境變量,以及child_process模塊來(lái)執(zhí)行命令行操作2023-10-10
解決npm?install版本不匹配問(wèn)題:?npm?ERR!?code?ETARGET?npm?ERR!?
這篇文章主要介紹了如何解決npm?install版本不匹配問(wèn)題:?npm?ERR!?code?ETARGET?npm?ERR!?notarget?No?matching?version?found?for,文中給出了詳細(xì)的解決方法,需要的朋友可以參考下2024-02-02
node.js+express制作網(wǎng)頁(yè)計(jì)算器
這篇文章主要介紹了node.js+express制作網(wǎng)頁(yè)計(jì)算器的相關(guān)資料,需要的朋友可以參考下2016-01-01

