使用NPM的第三方库应用,实现网络爬虫效果。
目标:将豆瓣电影的电影数据抓取下来,保存到本地文件 movie.json 中
爬取地址:https://movie.douban.com/chart
需要用到的第三方包:
axios(https://www.npmjs.com/package/axios)
专门用于在各种环境中发送网络请求,并获取到服务器响应结果
axios在浏览器端使用就会发送ajax请求,在node环境使用就会发送普通的网络请求。
ajax只是在浏览器端的特殊的网络请求
跨域问题是浏览器端的,和node环境没有任何关系,不存在跨域!
cheerio(https://www.npmjs.com/package/cheerio)
jquery的核心逻辑包,支持所有环境,可用于将一个html字符串转换成为jquery对象,并通过jquery对象完成后续操作,使用类似jq的api。
fs(http://nodejs.cn/api/fs.html)
node核心模块,专门用于文件处理【不用单独安装】
fs.writeFile(文件名, 数据)
代码所在位置:GitHub/JuFengGuo/EmploymentClass/10pacakge/npm
安装:npm i cheerio axios
代码开发:
1、引入axios库,请求豆瓣电影地址,需要用commonjs的require方法引入:
2、发起请求,获取电影资源信息:
3、利用cheerio库,处理拿到的html源代码:
根据dom层级树,利用jq的获取dom方法,拿到对应位置的对应信息
4、最后,使用fs模块把内容存储到本地json文件中:
源代码及封装库代码:
https://github.com/xingorg1/JuFengGuo/blob/master/EmploymentClass/10pacakge/npm/index.js