一个Node.js的小爬虫

爬虫其实就是对网页内特定id、class、标签内容的提取,多是循环出来的,对我们爬取非常便利。

1.安装node

node官网下载安装包安装,后在命令行工具中输入node -v查看node安装的版本。

2.实现项目

创建项目并进入

mkdir node-worm && cd node-worm

初始化项目环境,一路回车

npm init

安装依赖

npm install request cheerio --save-dev

在项目根目录创建app.js并写入以下代码

var request = require('request')
var cheerio = require('cheerio')
var reqUrl = '//www.cnblogs.com/e-cat/'
request(reqUrl, function (err, result) {
  if (err) {
    console.log(err)
  }
  let $ = cheerio.load(result.body)
  let list = []
  $('#main #mainContent .forFlow .day').each((index, element) => {
    let date = $($(`${element.name} .dayTitle a`)[index]).text() || ''
    let title = $($(`${element.name} .postTitle a span`)[index]).text()
    let desc = $($(`${element.name} .postCon .c_b_p_desc`)[index]).text()
    let href = $($(`${element.name} .postTitle a`)[index]).attr('href')
    let obj = {
      date,
      title,
      desc,
      href,
    }
    list.push(obj)
  })
  console.log(list)
})

其中reqUrl为爬取目标网址,提取的obj即为最终获取的内容结构。

 

Tags: