1. 簡介
在這個(gè)博客中,我們將學(xué)習(xí)如何使用Node.js編寫一個(gè)簡單的爬蟲來從壁紙網(wǎng)站獲取圖片并將其下載到本地。我們將使用Axios和Cheerio庫來處理HTTP請求和HTML解析。
2. 設(shè)置項(xiàng)目
首先,確保你已經(jīng)安裝了Node.js環(huán)境。然后,我們將創(chuàng)建一個(gè)新的文件夾,初始化項(xiàng)目并安裝所需的依賴庫:
Copy code
mkdir wallpaper-scraper
cd wallpaper-scraper
npm init -y
npm install axios cheerio
- 編寫爬蟲代碼
在項(xiàng)目文件夾中,創(chuàng)建一個(gè)名為scraper.js的文件,并將你提供的代碼復(fù)制粘貼進(jìn)去。
const axios = require('axios');
const cheerio = require('cheerio');
const fs = require('fs');
const baseUrl = 'http://www.netbian.com/';
const page = 3;
const pachong = async () => {
const imgList = [];
for (let i = 0; i < page; i++) {
const res = await axios.get(
`${baseUrl}index${i === 0 ? '' : `_${i + 1}`}.htm`,
);
const $ = cheerio.load(res.data);
const imgList2 = $('.list li a img')
.toArray()
.map((item) => {
return $(item).attr('src');
});
imgList.push(...imgList2);
}
writeFile(imgList);
};
const writeFile = async (urls) => {
urls.forEach(async (item) => {
try {
const res = await axios.get(item, { responseType: 'arraybuffer' });
const imgBuffer = Buffer.from(res.data, 'binary');
await fs.promises.writeFile(
`./img/${new Date().getTime()}.jpg`,
imgBuffer,
);
console.log('寫入成功 --- ' + item);
} catch (error) {
console.log('寫入失敗 --- ' + error);
}
});
};
pachong();
4. 運(yùn)行爬蟲
現(xiàn)在,你可以在命令行中運(yùn)行爬蟲腳本:
node scraper.js
腳本會(huì)自動(dòng)爬取壁紙網(wǎng)站的圖片并將它們下載到一個(gè)名為img的文件夾中。每張圖片將使用當(dāng)前時(shí)間戳作為文件名,以確保唯一性。文章來源:http://www.zghlxwxcb.cn/news/detail-654555.html
5. 注意事項(xiàng)
確保遵守網(wǎng)站的使用條款和條件。不要過度請求或?yàn)E用網(wǎng)站,以免造成不必要的麻煩。
代碼中使用的選擇器、URL結(jié)構(gòu)等可能會(huì)因網(wǎng)站結(jié)構(gòu)的更改而失效。需要根據(jù)實(shí)際情況進(jìn)行調(diào)整。文章來源地址http://www.zghlxwxcb.cn/news/detail-654555.html
到了這里,關(guān)于【nodejs】用Node.js實(shí)現(xiàn)簡單的壁紙網(wǎng)站爬蟲的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!