request获取页面html内容,request、request-promise、cheerio抓取网页内容
爬蟲是一種自動獲取網頁內容的程序。是搜索引擎的重要組成部分,因此搜索引擎優化很大程度上就是針對爬蟲而做出的優化,說白了爬蟲拿到的就是您網頁上的html代碼。
新建目錄
新建grabTest目錄cd grabTest
進入目錄npm init
一路回車創建package.json。
安裝
request(簡化的HTTP客戶端)、request-promise(request返回Promise使用async/ await)、cheerio(將抓取頁面的html代碼轉為DOM,可以稱之為是node版的jq)npm i request request-promise cheerio
查看package.json文件
說明安裝成功了。
目錄下新建read.js//request-promise是讓request支持了promise的語法
const rp = require('request-promise');
const cheerio = require('cheerio');
const html_encode = function(str){
var s = "";
if (str.length == 0) return "";
s = str.replace(/&/g, "&");
s = s.replace(/
s = s.replace(/>/g, ">");
s = s.replace(/ /g, "?");
s = s.replace(/\'/g, "'");
s = s.replace(/\"/g, """);
s = s.replace(/\n/g, "
");
return s;
}
const read = (url) =>{
const opts = {
url,// 目標頁面
transform:body => {
// body為目標頁面抓取到的html代碼
// 通過cheerio.load方法可以把html代碼轉換成可以操作的DOM結構
return cheerio.load(body);
}
};
return rp(opts).then($=>{
let result = [];// 結果數組
//遍歷列表標題a標簽
$('.itemTitle a').each((index,item) => {
const ele = $(item);
const url = ele.attr('href');
const title = ele.text();
//取a標簽href進入內頁取文章內容,閉包異步獲取
(async function(index){
const $$ = await rp({
url,
transform:body => {
// cheerio中的.html()方法默認開啟轉換實體編碼
// decodeEntities:false關閉轉換實體編碼
return cheerio.load(body,{decodeEntities:false});
}
});
$$('.article-content script').remove();
$$('.article-content ins').remove();
//html_encode選擇性、&等轉義成實體編碼
result[index].contentText = html_encode( $$('.article-content').html() );
})(index);
result.push({
title
});
console.log(title);
});
// 返回結果數組
return result;
})
};
read('https://www.xinran001.com/');
目錄下執行Nodenode read.js
在控制臺上就可以看到打印出的文章標題。
總結
以上是生活随笔為你收集整理的request获取页面html内容,request、request-promise、cheerio抓取网页内容的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 苹果菠萝笔html5游戏在线玩,苹果菠萝
- 下一篇: ap统计学需要什么计算机,准备AP统计学