程序员

node网络爬虫

2018-07-13  本文已影响42人  Herrylo

爬取读者文章
网易云音乐封面
pm2.5爬取
音悦台 MV

安装nodejs
# npm install request
# npm install cheerio
示例代码:
/*
* 爬取城市PM2.5
*/

const fs = require('fs');
const request = require('request');
const path = require('path');
const cheerio = require('cheerio');

function getPM25(cityname) {
    const url = 'http://www.pm25.com/'+ cityname+'.html'
    request.head(url, function (err, res, body) {
        if(err){
            console.log(err);
        }else{
            request(url,function  (error,response,data)   {
                if(!error && response.statusCode == 200){
                    const $ = cheerio.load(data);
                    let city = $('.bi_loaction_city');  // 城市名称
                    let aqi = $('.bi_aqiarea_top .bi_aqiarea_num');   // AQI指数
                    let quality = $('.bi_aqiarea_right span') // 空气质量
                    let result = $('div .bi_aqiarea_bottom') // 空气质量描述
                    console.log(city.text() + 'AQI指数:'+ aqi.text() + ';空气质量:' + quality.eq(0).text() + result.text())
                }
            });
        }
    });
}

getPM25('wuhan')

request请求url链接,适用cheerio将获取的data中的DOM节点。
request.head 验证url地址的正确性。

使用cheerio获取节点数据,需要满足的条件是html为后端渲染生成,元素节点存在html文件中。

上一篇 下一篇

猜你喜欢

热点阅读