這里假設(shè)你已經(jīng)安裝好node.js和npm,如果沒有安裝,請(qǐng)參閱其他教程安裝。
配置
首先是來配置package.json文件,這里使用express,request和cheerio。
package.json如下:
{ "name": "node-scrape", "version": "0.0.1", "description": "Scrape", "main": "server.js", "dependencies": { "express" : "latest", "request" : "latest", "cheerio" : "latest" } }
npm 安裝
把package.json文件放到一個(gè)你自己定義的文件夾(nodejs_scrape)下,然后在命令行下執(zhí)行
cd nodejs_scrape npm install
抓取內(nèi)容
在nodejs_scrape目錄下新建一個(gè)server.js文件,先定義如下變量的和方法
var express = require("express"); var fs = require("fs"); var request = require("request"); var cheerio = require("cheerio"); var app = express(); app.get("/",function (req,res) { //抓取內(nèi)容的方法 }); app.listen("8081"); //使用8081端口 console.log("Magic happens on port 8081"); exports = module.exports = app;
下面我們就來完善get方法的內(nèi)容
首先定義要抓取的url,這里以segmentfault為例
url = "https://segmentfault.com/news";
頁面如下面所示,點(diǎn)擊F12查看,我們就提取最簡(jiǎn)單的 class="mr10" 這個(gè)標(biāo)簽
抓取內(nèi)容的方法如下
request(url, function (err,res,html) { if (!err){ var $ = cheerio.load(html); var title; $(".mr10").filter(function () { var data = $(this); title = data.text(); //獲取標(biāo)簽的內(nèi)容 console.log("title is " + title); //控制臺(tái)打印 }); } });
server.js完整代碼如下
/** * Created by Administrator on 2017/3/1. */ var express = require("express"); var fs = require("fs"); var request = require("request"); var cheerio = require("cheerio"); var app = express(); app.get("/",function (req,res) { //all scrape magic will happen here url = "https://segmentfault.com/news"; request(url, function (err,res,html) { if (!err){ var $ = cheerio.load(html); var title; $(".mr10").filter(function () { var data = $(this); title = data.text(); console.log("title is " + title); }); } }); }); app.listen("8081"); console.log("Magic happens on port 8081"); exports = module.exports = app;
運(yùn)行
在nodejs_scrape目錄下運(yùn)行 node server ,可以看到如下所示
在瀏覽器運(yùn)行http://127.0.0.1:8081/,可以看到抓取的內(nèi)容如下:
這樣我們就完成了一個(gè)簡(jiǎn)單到不能再簡(jiǎn)單的node.js爬蟲。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/81826.html
摘要:爬蟲介紹二爬蟲的分類通用網(wǎng)絡(luò)爬蟲全網(wǎng)爬蟲爬行對(duì)象從一些種子擴(kuò)充到整個(gè),主要為門戶站點(diǎn)搜索引擎和大型服務(wù)提供商采集數(shù)據(jù)。 分分鐘教你用node.js寫個(gè)爬蟲 寫在前面 十分感謝大家的點(diǎn)贊和關(guān)注。其實(shí),這是我第一次在segmentfault上寫文章。因?yàn)槲乙彩乔岸螘r(shí)間偶然之間才開始了解和學(xué)習(xí)爬蟲,而且學(xué)習(xí)node的時(shí)間也不是很長(zhǎng)。雖然用node做過一些后端的項(xiàng)目,但其實(shí)在node和爬蟲方面...
摘要:前言很多程序猿在最開始學(xué)習(xí)開發(fā)的時(shí)候應(yīng)該都有一個(gè)想要自己開發(fā)一個(gè)爬蟲的想法至少我是有的。其實(shí)弄懂了爬蟲的原理,再回過頭去看,發(fā)現(xiàn)開發(fā)一個(gè)簡(jiǎn)單的爬蟲來說還是很容易的。 前言 很多程序猿在最開始學(xué)習(xí)開發(fā)的時(shí)候應(yīng)該都有一個(gè)想要自己開發(fā)一個(gè)爬蟲的想法(至少我是有的)。所以國(guó)內(nèi)網(wǎng)絡(luò)上也是爬蟲盛行!學(xué)了node.js之后發(fā)現(xiàn)比較適合寫爬蟲,不過一直沒有動(dòng)手去寫,正好這段時(shí)間比較閑,就寫個(gè)爬蟲玩下。...
摘要:項(xiàng)目中一直用不到但是覺得這門以作為編程基礎(chǔ)的服務(wù)端語言很有意思用它可以寫一些接口寫個(gè)爬蟲這是一門基礎(chǔ)篇看了一段時(shí)間文檔后寫個(gè)爬蟲增強(qiáng)一下的認(rèn)識(shí)吧爬蟲的原理感覺很簡(jiǎn)單大致分為一下三步獲取到對(duì)應(yīng)網(wǎng)站的數(shù)據(jù)也就是代碼篩選出你需要的數(shù)據(jù)比如用戶的信 項(xiàng)目中一直用不到node,但是覺得node這門以js作為編程基礎(chǔ)的服務(wù)端語言很有意思,用它可以寫一些接口,寫個(gè)爬蟲.這是一門基礎(chǔ)篇,看了一段時(shí)間文...
閱讀 3397·2023-04-25 14:07
閱讀 3466·2021-09-28 09:35
閱讀 2097·2019-08-30 15:55
閱讀 1412·2019-08-30 13:48
閱讀 2505·2019-08-30 13:16
閱讀 3206·2019-08-30 12:54
閱讀 3241·2019-08-30 11:19
閱讀 1881·2019-08-29 17:17