nodejs實現網站數據的爬取

 1 // 引入https模塊,因爲咱們爬取的網站採用的是https協議
 2 const https = require('https');
 3 // 引入cheerio模塊,使用這個模塊能夠將爬取的網頁源代碼進行裝載,而後使用相似jquery的語法去操做這些元素
 4 // 在cheerio不是內置模塊,須要使用包管理器下載安裝
 5 const cheerio = require('cheerio');
 6 // 這裏以爬取拉鉤網爲例
 7 var url = "https://www.lagou.com/";
 8 // 使用https模塊中的get方法,獲取指定url中的網頁源代碼
 9 https.get(url, function (res) {
10     var html = '';
11     // 每當咱們從指定的url中獲得數據的時候,就會觸發res的data事件,事件中的chunk是每次獲得的數據,data事件會觸發屢次,由於一個網頁的源代碼並非一次性就能夠下完的
12     res.on("data", function (chunk) {
13         html += chunk;
14     });
15     // 當網頁的源代碼下載完成後, 就會觸發end事件
16     res.on("end", function () {
17         //這裏咱們對下載的源代碼進行一些處理
18         doSomeThing(html);
19 
20     });
21 });
22 function doSomeThing(html) {
23     // 使用cheerio模塊裝載咱們獲得的頁面源代碼,返回的是一個相似於jquery中的$對象
24     var $ = cheerio.load(html);
25     //使用這個$對象就像操做jquery對象通常去操做咱們獲取獲得的頁面的源代碼
26     var $menu_box = $(".menu_box");
27     // 將咱們須要的文字信息存儲在一個數組中
28     var result = [];
29     $menu_box.each(function (i, item) {
30         var obj = {};
31         var h2 = $(item).find("h2").text().trim();
32         obj.name = h2;
33         var $as = $(item).find("a");
34         obj.subName = [];
35         $as.each(function (i, item) {
36             obj.subName.push($(item).text());
37         });
38         result.push(obj);
39     });
40     //最後咱們輸出這個結果
41     console.log(result);
42 }

 

// 引入https模塊,因爲咱們爬取的網站採用的是https協議
const https = require( 'https');
// 引入cheerio模塊,使用這個模塊能夠將爬取的網頁源代碼進行裝載,而後使用相似jquery的語法去操做這些元素
// 在cheerio不是內置模塊,須要使用包管理器下載安裝
const cheerio = require( 'cheerio');
// 這裏以爬取拉鉤網爲例
var url = "https://www.lagou.com/";
// 使用https模塊中的get方法,獲取指定url中的網頁源代碼
https. get( url, function ( res) {
var html = '';
// 每當咱們從指定的url中獲得數據的時候,就會觸發res的data事件,事件中的chunk是每次獲得的數據,data事件會觸發屢次,由於一個網頁的源代碼並非一次性就能夠下完的
res. on( "data", function ( chunk) {
html += chunk;
});
// 當網頁的源代碼下載完成後, 就會觸發end事件
res. on( "end", function () {
//這裏咱們對下載的源代碼進行一些處理
doSomeThing( html);

});
});
function doSomeThing( html) {
// 使用cheerio模塊裝載咱們獲得的頁面源代碼,返回的是一個相似於jquery中的$對象
var $ = cheerio. load( html);
//使用這個$對象就像操做jquery對象通常去操做咱們獲取獲得的頁面的源代碼
var $menu_box = $( ".menu_box");
// 將咱們須要的文字信息存儲在一個數組中
var result = [];
$menu_box. each( function ( i, item) {
var obj = {};
var h2 = $( item). find( "h2"). text(). trim();
obj. name = h2;
var $as = $( item). find( "a");
obj. subName = [];
$as. each( function ( i, item) {
obj. subName. push( $( item). text());
});
result. push( obj);
});
//最後咱們輸出這個結果
console. log( result);
}
相關文章
相關標籤/搜索