日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

request获取页面html内容,request、request-promise、cheerio抓取网页内容

發布時間:2024/9/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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抓取网页内容的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。