美文网首页
NodeJS 用jsdom抓取html数据

NodeJS 用jsdom抓取html数据

作者: zhousen05 | 来源:发表于2018-04-25 10:39 被阅读0次

先要装jsdom: npm install jsdom.

var jsdom = require('jsdom');

const { JSDOM } = jsdom;

var http = require('http');

var html = [];

var request = http.get(pageUrl,function(res){

        res.on('data',function(data){

                html.push(data);

            });

        res.on('end',function(){

               gbkBufferToUtf8Buffet(html,function(utf8String){

                                     var item = new JSDOM(utf8String);

                                     var document = item.window.document;

analyzeHTMLDListElementList(document.getElementsByClassName('xi2'),function(){});

                            });

            });

    });

request.on('error',function(error){

        console.log('error is ' + error);

});

request.end();

/*

查找HTML元素

(1)利用getElementById()方法

(2)利用getElementsByTagName()方法

(3)利用getElementsByClassName()方法

(4)利用getElementsByName()方法

这里有更多的使用:http://www.runoob.com/jsref/dom-obj-document.html

*/

//GBK转码

function gbkBufferToUtf8Buffet(gbkBuffer,callBackFunction){

    var iconv = require('iconv-lite');

    var decodedBody = iconv.decode(Buffer.concat(gbkBuffer), 'GBK');

    var string = decodedBody.toString();

    callBackFunction(string);

}

相关文章

网友评论

      本文标题:NodeJS 用jsdom抓取html数据

      本文链接:https://www.haomeiwen.com/subject/uzselftx.html