日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) >

Z-Blog 爬虫 node实现

發(fā)布時(shí)間:2023/12/10 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Z-Blog 爬虫 node实现 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Z-Blog 爬蟲(chóng) node實(shí)現(xiàn) 目前正在連載更新中

一、需求

幫朋友建站,指定用Z-Blog,安裝后,我發(fā)現(xiàn)采集文章不便,所以準(zhǔn)備寫(xiě)一個(gè)node爬蟲(chóng),實(shí)現(xiàn)對(duì)友站文章的自動(dòng)采集。

二、實(shí)現(xiàn)之前的思考

1、 熟悉Z-Blog數(shù)據(jù)庫(kù)

Z-Blog使用mysql數(shù)據(jù)庫(kù),所以我需要知道Z-Blog數(shù)據(jù)庫(kù)結(jié)構(gòu)。

2、node工具庫(kù)選型

請(qǐng)求庫(kù)想用superagent,規(guī)則提取用cheerio,并發(fā)控制用async,mysql數(shù)據(jù)庫(kù)操作用sequelize

3、后續(xù)

第一版,簡(jiǎn)單寫(xiě),滿(mǎn)足自己的功能需求就行。若Z-Blog站點(diǎn)看到我文章,覺(jué)得也有爬蟲(chóng)需求,我會(huì)嘗試寫(xiě)一個(gè)針對(duì)Z-Blog的采集框架。

三、開(kāi)工 項(xiàng)目地址 z-blog-spider

1、初始化項(xiàng)目

yarn init

2、安裝工具庫(kù)

yarn add superagent cheerio sequelize mysql2

3、創(chuàng)建配置文件config.js

const Sequelize = require('sequelize'); module.exports.db_config = {database: 'qy',username: 'root',password: 'root',config: {host: '127.0.0.1', // 數(shù)據(jù)庫(kù)地址dialect: 'mysql', // 指定連接的數(shù)據(jù)庫(kù)類(lèi)型operatorsAliases: Sequelize.Op,pool: {max: 5, // 連接池中最大連接數(shù)量min: 0, // 連接池中最小連接數(shù)量idle: 10000 // 如果一個(gè)線程 10 秒鐘內(nèi)沒(méi)有被使用過(guò)的話(huà),那么就釋放線程}} }

4、創(chuàng)建文件db.js測(cè)試數(shù)據(jù)庫(kù)連通性(事先創(chuàng)建mode文件夾用于存放數(shù)據(jù)模型)

const fs = require('fs'); const path = require('path'); const Sequelize = require('sequelize');const { db_config } = require('./config');const sequelize = new Sequelize(db_config.database, db_config.username, db_config.password, db_config.config);sequelize.authenticate().then(() => {console.log('數(shù)據(jù)庫(kù)連接成功');}).catch(err => {console.error('連接數(shù)據(jù)庫(kù)出錯(cuò)', err);}); const db = {};fs.readdirSync(path.join(__dirname, './model')).forEach(function (file) {const model = sequelize.import(path.join(__dirname, file));db[model.name] = model;});Object.keys(db).forEach(function (modelName) {if ('classMethods' in db[modelName].options) {if ('associate' in db[modelName].options['classMethods']) {db[modelName].options.classMethods.associate(db);}} });db.sequelize = sequelize; db.Sequelize = Sequelize;module.exports = db;

5、創(chuàng)建index.js文件,程序入口

const db = require('./db.js')

打開(kāi)命令行運(yùn)行node index.js

不出意外會(huì)打印數(shù)據(jù)庫(kù)連接成功,說(shuō)明準(zhǔn)備工作完成。

總結(jié)

以上是生活随笔為你收集整理的Z-Blog 爬虫 node实现的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。