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);
}