1.安装axios,安装cheerio
npm i axios
npm i cheerio
2.分析网页结构,通过解析DOM来提取所需要的数据
如爬取1905电影网数据:
/vod/list/n_1/o3p1.html
1.通过$('.search-list').find('.pic-pack-outer')拿到每一栏数据,使用jq的each()方法去遍历
2.通过attr()方法和text()方法来处理自己所需要的数据,因为text()方法会默认拿到所匹配到的所有文本信息,需要通过.children().eq()去分解
const axios = require('axios')const cheerio = require("cheerio");async function getData() {let res = await axios.get('/vod/list/n_1/o3p1.html')const $ = cheerio.load(res.data)let movieList = [];$('.search-list').find('.pic-pack-outer').each(function (index, item) {const url = $(item).attr('href');const img = $(item).find('img').attr('src');const title = $(item).children().eq(1).text(); //.text()会拿到匹配到 下面所有文本const score = $(item).children().eq(2).text();const msg = $(item).children().eq(3).text();if(index!==0){movieList.push({ url, img, title, score, msg })}console.log(movieList)})}getData()
在扩展商店可以安装一个Code Runner插件,来运行node.js代码,运行之后,拿到了数据
3.若出现 axios报错问题可能是node版本过低,我用10.6的node会报axios错误问题安装一下高版本node即可解决