摘要:接著上篇爬蟲(chóng)抓取豆瓣電影網(wǎng)頁(yè)數(shù)據(jù)上本篇主要描述將上次抓取的數(shù)據(jù)存入數(shù)據(jù)庫(kù)前提百度或谷歌的安裝教程,安裝本地并成功運(yùn)行推薦一款數(shù)據(jù)庫(kù)可視化管理工具。
接著上篇 Nodejs爬蟲(chóng)--抓取豆瓣電影網(wǎng)頁(yè)數(shù)據(jù)(上)
本篇主要描述將上次抓取的數(shù)據(jù)存入mongodb數(shù)據(jù)庫(kù)
前提:百度或谷歌mongodb的安裝教程,安裝本地并成功運(yùn)行
推薦一款mongodb數(shù)據(jù)庫(kù)可視化管理工具:Robomongo??梢约尤?64591039獲取安裝包或自行尋找資源
關(guān)于mongoose詳情請(qǐng)查看官方文檔
npm install --save-dev mongoose引入mongoose包開(kāi)始對(duì)mongodb進(jìn)行管理
當(dāng)前目錄下新建一個(gè)mongo.js文件方便管理,在該文件中引入相關(guān)包:
let mongoose = require("mongoose"), assert = require("assert");獲取表構(gòu)造器Schema并映射mongodb相應(yīng)的collection
let Schema = mongoose.Schema; let filmSchema = new Schema({ //自定義相應(yīng)的表數(shù)據(jù)字段 title: String, type: String, directories: String, scriptwriter: String, actors: String }); //映射collection并生成model對(duì)象用于管理數(shù)據(jù)表的增刪改查 //默認(rèn)是映射到名為films的collection //若自定義表明則:let filmSchema = new Schema({..}, { collection: "data" }); "data"即為自定義名稱 let Film = mongoose.model("Film", filmSchema);連接mongodb數(shù)據(jù)庫(kù)并exports Film對(duì)象
let db = mongoose.connect("mongodb://127.0.0.1:27017/spider"); db.connection.on("error", (err) => { console.log(`數(shù)據(jù)庫(kù)連接失?。?{err}`); }); db.connection.on("open", () => { console.log("數(shù)據(jù)庫(kù)連接成功"); }); module.exports = {Film: Film};在spider.js中引入Film對(duì)象并添加入庫(kù)操作代碼
let mongo = require("./mongo"); //在請(qǐng)求網(wǎng)頁(yè)的end函數(shù)中添加入庫(kù)操作 xxxx.end((err, res) => { var $ = cheerio.load(res.text); //用cheerio獲取整個(gè)頁(yè)面DOM對(duì)象 var _data = {title:"", type: "", directories: "", scriptwriter: "", actors: ""}; _data.title = $("#content h1 span").text(); _data.directories = $("#info .attrs").eq(0).text(); _data.scriptwriter = $("#info .attrs").eq(1).text(); _data.actors = $("#info .attrs").eq(2).text(); $("span[property="v:genre"]").each(function (index) { _data.type += ($(this).text() + (index == $("span[property="v:genre"]").length - 1 ? "" : "、")); }); console.log(_data); mongo.Film.create(_data, (err, doc) => { assert.equal(err, null); console.log(doc); }); });運(yùn)行spider.js,并查看數(shù)據(jù)庫(kù)中的數(shù)據(jù)
node spider.js //用上述提到的可視化工具查看數(shù)據(jù)庫(kù)是否成功有數(shù)據(jù)入庫(kù)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/18947.html
摘要:接著上篇爬蟲(chóng)抓取豆瓣電影網(wǎng)頁(yè)數(shù)據(jù)上本篇主要描述將上次抓取的數(shù)據(jù)存入數(shù)據(jù)庫(kù)前提百度或谷歌的安裝教程,安裝本地并成功運(yùn)行推薦一款數(shù)據(jù)庫(kù)可視化管理工具。 接著上篇 Nodejs爬蟲(chóng)--抓取豆瓣電影網(wǎng)頁(yè)數(shù)據(jù)(上) 本篇主要描述將上次抓取的數(shù)據(jù)存入mongodb數(shù)據(jù)庫(kù) 前提:百度或谷歌mongodb的安裝教程,安裝本地并成功運(yùn)行 推薦一款mongodb數(shù)據(jù)庫(kù)可視化管理工具:Robomongo...
摘要:知乎日?qǐng)?bào)代理首先感謝提供的分析使用詳情請(qǐng)參考他提供的參數(shù)和地址代理轉(zhuǎn)發(fā)的使用為前綴進(jìn)入代理路由啟動(dòng)界面圖像獲取后為圖像分辨率,接受任意的格式,為任意非負(fù)整數(shù),返回值均相同返回值示例最新消息等具體參考提供的分析中的使用方式以及參數(shù)含義。 項(xiàng)目說(shuō)明 這是一個(gè)基于express的node后端API服務(wù),當(dāng)時(shí)只是想抓取字幕組網(wǎng)站的下載資源,以備以后通過(guò)nas的方式去自動(dòng)下載關(guān)注的美劇。不過(guò)后來(lái)...
摘要:在這之前,還是有必要對(duì)一些概念超輕量級(jí)反爬蟲(chóng)方案后端掘金前言爬蟲(chóng)和反爬蟲(chóng)日益成為每家公司的標(biāo)配系統(tǒng)。 爬蟲(chóng)修煉之道——從網(wǎng)頁(yè)中提取結(jié)構(gòu)化數(shù)據(jù)并保存(以爬取糗百文本板塊所有糗事為例) - 后端 - 掘金歡迎大家關(guān)注我的專題:爬蟲(chóng)修煉之道 上篇 爬蟲(chóng)修煉之道——編寫(xiě)一個(gè)爬取多頁(yè)面的網(wǎng)絡(luò)爬蟲(chóng)主要講解了如何使用python編寫(xiě)一個(gè)可以下載多頁(yè)面的爬蟲(chóng),如何將相對(duì)URL轉(zhuǎn)為絕對(duì)URL,如何限速,...
閱讀 3091·2021-10-27 14:16
閱讀 776·2021-10-13 09:39
閱讀 3917·2021-09-29 09:46
閱讀 2177·2019-08-30 15:54
閱讀 2672·2019-08-30 15:52
閱讀 3090·2019-08-30 15:44
閱讀 1192·2019-08-30 15:44
閱讀 570·2019-08-30 10:51