Appearance
nodejs 爬虫彩票数据
1、工具
- flyio 请求库
- cheerio jquery 核心功能的一个快速灵活而又简洁的实现,主要是为了用在服务器端需要对 DOM 进行操作的地方
- iconv-lite 转换字符编码
2、操作
从彩票 500 网站上获取数据
js
http://kaijiang.500.com/shtml/dlt/19077.shtml
可以看到只需要把彩种和对应期数处理下,就访问了对应的页面。
js
fly
.get(
`http://kaijiang.500.com/shtml/${lotteryType}/${lotteryDate}.shtml`,
null,
{
responseType: 'stream',
},
)
.then((res) => {
const html = iconv.decode(res.data, 'gb2312');
let $ = cheerio.load(html);
resolve($);
})
.catch((err) => {
reject(err);
});
注意返回的类型要流的形式,先通过转 gb2312 编码解析,cheerio 在 load 后就获得一个文档结果,通过$可以去操作页面中的DOM了
把需要的数据获取后,存入数据库。
然后 egg.js 的定时任务 schedule,在开奖时间后,每隔几分钟跑一次,获取最新的开奖数据。