z-blog 爬蟲 node實現 目前正在**更新中
一、需求
幫朋友建站,指定用z-blog,安裝後,我發現採集文章不便,所以準備寫乙個node爬蟲,實現對友站文章的自動採集。
二、實現之前的思考
1、 熟悉z-blog資料庫
z-blog使用mysql
資料庫,所以我需要知道z-blog資料庫結構。
2、node工具庫選型
請求庫想用superagent
,規則提取用cheerio
,併發控制用async
,mysql資料庫操作用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 =
}}
4、建立檔案db.js測試資料庫連通性(事先建立mode資料夾用於存放資料模型)
const fs = require('fs');
const path = require('path');
const sequelize = require('sequelize');
const = require('./config');
const sequelize = new sequelize(db_config.database, db_config.username, db_config.password, db_config.config);
sequelize
.authenticate()
.then(() => )
.catch(err => );
const db = {};
fs .readdirsync(path.join(__dirname, './model'))
.foreach(function
(file) );
object.keys(db).foreach(function
(modelname)
}});
db.sequelize = sequelize;
db.sequelize = sequelize;
module.exports = db;
5、建立index.js檔案,程式入口
const db = require('./db.js')
開啟命令列執行node index.js
不出意外會列印資料庫連線成功
,說明準備工作完成。
Node 簡單爬蟲
以爬慕課網hadoop高階課程為例,用node寫乙個簡單的爬蟲 先抓取這個 的原始碼 然後分析這個頁面的dom,如圖 每大章節都被乙個chapter包圍,抓取下來就是乙個陣列,對每個item,這張的大標題在strong裡面,每章的小章節在video標籤裡,然後小標題就是j media item的te...
node爬蟲實踐
爬蟲的原理很好理解,就是在服務端請求另乙個伺服器的資源,前端有跨域問題,而服務端沒有,這是天然優勢。掌握node的前端可以為所欲為了 1 首先,根據請求資源的協議選擇合適的模組,如果是https協議,就用https的方法取請求,之前沒有注意到這個問題。var https require https ...
Node爬蟲實踐
爬蟲的原理很好理解,就是在服務端請求另乙個伺服器的資源,前端有跨域問題,而服務端沒有,這是天然優勢。掌握node的前端可以為所欲為了。1 首先,根據請求資源的協議選擇合適的模組,比如csdn是https協議,就用https的方法取請求,之前沒有注意到這個問題。var https require ht...