• node.js 爬虫


    // 导入http模块 用来请求(爬取)http请求
    var http = require('http');
    // 导入https模块 用来请求(爬取)https请求
    var https = require('https');
    // 导入fs模块 用来存取文件或操作文件
    var fs = require('fs');
    // 导入 cheerio 模块 用来操作node版的jq
    var cheerio = require('cheerio');
    
    // 导入 url 网址 
    var url = 'http://2017.miaov.com/bbs';
    
    //调用函数
    fetchRequest(url); 
    //爬取函数
    function fetchRequest(url){
        var html='';
    
        //采用http模块向服务器发起一次get请求
        http.get(url,function(res){
            
            var titles = [];
    
            //防止中文乱码
            res.setEncoding('utf-8');
    
            //监听data事件,每次取一块数据
            res.on('data',function(chunk){
                html += chunk;
            });
    
            //监听end事件,如果整个网页内容的html都获取完毕,就执行回调函数
            res.on('end',function(){
    
                //采用cheerio模块解析html
                var $ = cheerio.load(html);
    
                //用来存储内容的
                var news_item = [];
    
                $('.listMain').each(function(index,item){
    
                    var title = $(this).find('.postTitle').text();
                    var url = '2017.miaov.com' + $(this).find('a').attr('href');
                    datatitle = title + '
    '+ url + '
    ';
                    news_item.push({
                        title:title,
                        url:url
                    })
                    //向文件写入内容
                    fs.appendFile('./data/' + 'pachong.txt', datatitle, 'utf-8', function (err) {
                        if (err) {
                            console.log(err);
                        }
                    });
                });
                
                //待处理爬取后的内容
                console.log(news_item);
            })
        })
    }
    
        
  • 相关阅读:
    中国剩余定理(SCAUOJ 1077)
    uva 11426 GCD
    LA 4119 Always an integer (数论+模拟)
    uva 12003 Array Transformer (线段树套平衡树)
    uva 10253 Series-Parallel Networks (整数划分+多重集)
    LA 4123 Glenbow Museum
    uva 11361 Investigating Div-Sum Property
    2013多校训练赛第二场 总结
    uva 11174 Stand in a Line (排列组合)
    canvas 画椭圆
  • 原文地址:https://www.cnblogs.com/vsmart/p/7728364.html
Copyright © 2020-2023  润新知