-
Notifications
You must be signed in to change notification settings - Fork 0
/
parse2jquery.js
38 lines (33 loc) · 963 Bytes
/
parse2jquery.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
var request = require('request');
var iconv = require('iconv-lite');
var cheerio = require('cheerio');
var Processtime = require('./processtime');
/*
* Sample:
* var parse2jquery = new Parse2jquery(encoding);
* parse2jquery.request('http://google.com', function($) {
* console.log($('a').text());
* });
*/
var parse2jquery = function(encoding) {
// private
var that = this;
// public
this.encoding = encoding || 'utf-8';
this.request = Request;
function Request(url, callback) {
var encoding = that.encoding;
var processtime = new Processtime();
processtime.start('[parse2jquery][解析網頁: ' + url + ' ]');
request({
uri: url,
encoding: null
}, function (error, response, body) {
if (!error && response.statusCode == 200) {
callback.call(this, cheerio.load(iconv.decode(body, encoding)));
}
processtime.end('[parse2jquery][解析網頁: ' + url + ' ]');
});
}
}
module.exports = parse2jquery;