nodejs爬虫第一篇---> request、cheerio

request

  • request是一个第三方的模块,封装了 http 模块,使我们发送 get、post等 请求更简洁。有几个只要的参数:
    • url:请求的地址
    • method:请求的方式
    • function:回调函数,该函数也有三个参数:1、err 错误对象,2、response 响应对象,3、body 响应数据
  • 安装
npm install request --save
//引入模块
const request = require('request')
//小试牛刀:向百度首页发送了一个get请求
const url = 'https://www.baidu.com/'
request(url, function (err, response, body) {
    console.log(body)
})

cheerio

  • 会用 jQuery,那么使用 cheerio就不会难了,cheerio 包括了 jQuery 核心的子集。cheerio 从jQuery库中去除了所有 DOM不一致性和浏览器尴尬的部分,几乎能够解析任何的 HTML 和 XML document,通过load方法传递 HTML document或者标签字符串的形式来加载返回 相应的对象,该对象可以对 HTML document或者标签进行操作。
  • 安装
npm install request --save
const request = require('request')
const cheerio = require('cheerio')

//传递 HTML document
const url = 'https://www.baidu.com/'
request(url, function (err, response, body) {
    //此时body即为 HTML documen
    const $ = cheerio.load(body)
})
//传递标签字符串
const $ = cheerio.load('<div class="text">...</div>')

抓取数据

  • 获取HTML document对象
const request = require('request')
const cheerio = require('cheerio')

function getMovies(url) {
    return new Promise((resolve, reject) => {
        request(url, function (err, response, body) {
            //获取HTML document对象
            const $ = cheerio.load(body)
        })
    })
}
  • 猫眼热映电影 图片
  • HTML结构分析
    • 通过分析 HTML的结构,得出的结果:
    • 电影的链接详情

猜你喜欢

转载自www.cnblogs.com/HJ412/p/10683196.html
今日推荐