• nodejs爬虫系统


    • 其中express是服务端框架
    • request相当于前端的ajax请求
    • cheerio相当于jq
    开始
    首先我们先新建一个 crawler目录
    执行 npm install express -g 命令 和  npm install express-generator -g 命令
     
    接着 cd crawler 进入crawler目录   执行 npm install request --save-dev  和  npm install cheerio --save-dev             
     
    然后在我们的目录下建立express项目  直接命令行执行 express
    OK 我们的项目目录变成这个样子:
     
    接下来
    我们首先安装下项目的依赖,执行 npm install 就OK
     
    那这样我们的前期工作就做好了。
     
    接着
    我们打开app.js
    我们来修改他。
    如下:
     1 var express = require('express');
     2 var app = express();
     3 
     4 app.get('/', function(req, res) {
     5   res.send('hello express');
     6 });
     7 
     8 app.listen(3000, function() {
     9   console.log('listening on 3000');
    10 });
    终端执行 supervisor app.js
    (注:supervisor是nodejs中监控进程用的。比如我们修改了app.js 那么supervisor就会自动去重启这个文件,不需要我们手动去node app.js,用户可以通过 npm install supervisor -g 来安装。这个也是我们在nodejs开发中常用到的一个工具)
     
    OK。
    我们打开127.0.0.1:3000
    看到页面上输出了 hello express。 一切正常
     
    就下来我们看下request。我们去到npm 里面 request的官网
    看到关于他的使用,我们把它趴下来:
     
     
    修改我们的app.js
     1 var express = require('express');
     2 var app = express();
     3 var request = require('request');
     4 
     5 app.get('/', function(req, res) {
     6   request('http://www.cnblogs.com/galenyip', function (error, response, body) {
     7     if (!error && response.statusCode == 200) {
     8       console.log(body);// Show the HTML for the Google homepage. 
     9       res.send('hello express');
    10     }
    11   });
    12 });
    13 
    14 app.listen(3000, function() {
    15   console.log('listening on 3000');
    16 });

    地址修改成我的博客地址吧。来爬爬我这个博客

    OK,刷新我们的页面。等一会,会看到终端打印出了html相关信息。

    接着,

    我们用上 cheerio

    在app.js中 我们就入 var cherrio = require('cherrio');

     1 var express = require('express');
     2 var app = express();
     3 var request = require('request');
     4 var cheerio = require('cheerio');
     5 
     6 app.get('/', function(req, res) {
     7   request('http://www.cnblogs.com/galenyip', function (error, response, body) {
     8     if (!error && response.statusCode == 200) {
     9       $ = cheerio.load(body); //拿到body,作为选择器
    10     }
    11   });
    12 });
    13 
    14 app.listen(3000, function() {
    15   console.log('listening on 3000');
    16 });

    同时,我们可以看到  cheerio.load(body)就是我们拿到的页面,把它作为总的选择器。

    之后的,我们就可以像操作jq一样操作这个页面了。

    具体的api可以到官网:

    https://www.npmjs.com/package/cheerio

    它的api跟jq很像,那这个就不做介绍了

    其实,我们的整个爬虫就差不多了。

    剩下的就是看客们根据自己的需要,去抓取页面的dom,筛选等等等等。。。。

    好了。

    大体就这么多了。

    有不懂的,或者纰漏的,大家可以在评论里面交流拍砖。

  • 相关阅读:
    Linux上面执行 Windows 命令(比如 重启服务)的简单方法
    Linux 通过cksum 来判断文件是否是相同
    Linux 根据端口快速停止服务并启动的办法
    Delphi控件开发浅入深出(三)
    Delphi 资源文件( .res)
    C++中模块(Dll)对外暴露接口的方式
    delphi Align属性
    cport串口控件的应用
    两款工控控件对比评测:Iocomp和ProEssentials
    Android 将ARGB图片转换为灰度图
  • 原文地址:https://www.cnblogs.com/galenyip/p/4624312.html
Copyright © 2020-2023  润新知