学做衣服上什么网站,申请免费网站需要什么条件,福州网站建设的公司哪家好,网页友情链接Z-Blog 爬虫 node实现 目前正在连载更新中
一、需求
帮朋友建站#xff0c;指定用Z-Blog#xff0c;安装后#xff0c;我发现采集文章不便#xff0c;所以准备写一个node爬虫#xff0c;实现对友站文章的自动采集。
二、实现之前的思考
1、 熟悉Z-Blog数据库
Z-Blog使…Z-Blog 爬虫 node实现 目前正在连载更新中
一、需求
帮朋友建站指定用Z-Blog安装后我发现采集文章不便所以准备写一个node爬虫实现对友站文章的自动采集。
二、实现之前的思考
1、 熟悉Z-Blog数据库
Z-Blog使用mysql数据库所以我需要知道Z-Blog数据库结构。
2、node工具库选型
请求库想用superagent规则提取用cheerio并发控制用asyncmysql数据库操作用sequelize
3、后续
第一版简单写满足自己的功能需求就行。若Z-Blog站点看到我文章觉得也有爬虫需求我会尝试写一个针对Z-Blog的采集框架。
三、开工 项目地址 z-blog-spider
1、初始化项目
yarn init
2、安装工具库
yarn add superagent cheerio sequelize mysql2
3、创建配置文件config.js
const Sequelize require(sequelize);
module.exports.db_config {database: qy,username: root,password: root,config: {host: 127.0.0.1, // 数据库地址dialect: mysql, // 指定连接的数据库类型operatorsAliases: Sequelize.Op,pool: {max: 5, // 连接池中最大连接数量min: 0, // 连接池中最小连接数量idle: 10000 // 如果一个线程 10 秒钟内没有被使用过的话那么就释放线程}}
}
4、创建文件db.js测试数据库连通性事先创建mode文件夹用于存放数据模型
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(数据库连接成功);}).catch(err {console.error(连接数据库出错, 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、创建index.js文件程序入口
const db require(./db.js)
打开命令行运行node index.js
不出意外会打印数据库连接成功说明准备工作完成。