使用NPM的第三方库应用,实现网络爬虫效果。


    目标:将豆瓣电影的电影数据抓取下来,保存到本地文件 movie.json 中
    爬取地址:https://movie.douban.com/chart
    需要用到的第三方包:
    axioshttps://www.npmjs.com/package/axios
    专门用于在各种环境中发送网络请求,并获取到服务器响应结果
    axios在浏览器端使用就会发送ajax请求,在node环境使用就会发送普通的网络请求。
    ajax只是在浏览器端的特殊的网络请求
    跨域问题是浏览器端的,和node环境没有任何关系,不存在跨域!
    cheeriohttps://www.npmjs.com/package/cheerio
    jquery的核心逻辑包,支持所有环境,可用于将一个html字符串转换成为jquery对象,并通过jquery对象完成后续操作,使用类似jq的api。
    image.png
    fshttp://nodejs.cn/api/fs.html
    node核心模块,专门用于文件处理【不用单独安装】
    fs.writeFile(文件名, 数据)

    代码所在位置:GitHub/JuFengGuo/EmploymentClass/10pacakge/npm

    安装:npm i cheerio axios

    代码开发:
    1、引入axios库,请求豆瓣电影地址,需要用commonjs的require方法引入:
    image.png

    2、发起请求,获取电影资源信息:
    image.png

    3、利用cheerio库,处理拿到的html源代码:
    根据dom层级树,利用jq的获取dom方法,拿到对应位置的对应信息
    image.png

    4、最后,使用fs模块把内容存储到本地json文件中:
    image.png


    源代码及封装库代码:
    https://github.com/xingorg1/JuFengGuo/blob/master/EmploymentClass/10pacakge/npm/index.js