最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

關(guān)于Nodejs實現(xiàn)的搬家工具知識的圖文代碼介紹

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 20:16:20
文檔

關(guān)于Nodejs實現(xiàn)的搬家工具知識的圖文代碼介紹

關(guān)于Nodejs實現(xiàn)的搬家工具知識的圖文代碼介紹:這篇文章 主要學(xué)習(xí)這兩個模塊的使用:request-promise-native : cheerio : nodejs有個request模塊,專門處理這些網(wǎng)絡(luò)請求方面的。 就像.NET也有request,webclient,httpclient啥的。nodejs的request使用方法在這,自己查一下: 而我喜
推薦度:
導(dǎo)讀關(guān)于Nodejs實現(xiàn)的搬家工具知識的圖文代碼介紹:這篇文章 主要學(xué)習(xí)這兩個模塊的使用:request-promise-native : cheerio : nodejs有個request模塊,專門處理這些網(wǎng)絡(luò)請求方面的。 就像.NET也有request,webclient,httpclient啥的。nodejs的request使用方法在這,自己查一下: 而我喜
這篇文章 主要學(xué)習(xí)這兩個模塊的使用:

request-promise-native : cheerio :

nodejs有個request模塊,專門處理這些網(wǎng)絡(luò)請求方面的。 就像.NET也有request,webclient,httpclient啥的。。

nodejs的request使用方法在這,自己查一下:

而我喜歡用async和await的寫法,因此我還引入了request-promise-native 模塊, ,這個就相當(dāng)于.NET中httpclient吧。

好了背景就講這么多,我們就開始簡單的使用request-promise-native,進行模擬提交。

我用淘寶鏡像安裝模塊,會比較快比較快一些,注冊淘寶鏡像方式:

npm install -g cnpm --registry=

然安裝模塊:

cnpm install --save request
cnpm install --save request-promise-native

我們登陸后 ,嘗試發(fā)一篇文章,然我們分析一下提交的東西:

主要是 Cookie以及 FormData。

好了,然后我們寫一個 cnblogs,來處理提交,代碼:

const request = require('request-promise-native');
// const proxy = 'http://127.0.0.1:8888';
const url = 'https://i.cnblogs.com/EditPosts.aspx?opt=1';
class Cnblogs {
 static async save({ title, content, postdate }) {
 let response = await request({
 url: url,
 method: 'POST',
 headers: {
 Cookie: '[隱私隱私隱私]',
 },
 form: {
 __VIEWSTATE: '===========',
 __VIEWSTATEGENERATOR: 'FE27D343',
 Editor$Edit$txbTitle: title,
 Editor$Edit$EditorBody: `<p style="color: red; font-weight: bold;">原文發(fā)布時間為:${postdate} —— 來源于本人的百度文章 [由搬家工具導(dǎo)入]</p>${content}`,
 Editor$Edit$APOptions$Advancedpanel1$cklCategories$0: '1031596',
 Editor$Edit$Advanced$ckbPublished: 'on',
 Editor$Edit$Advanced$chkDisplayHomePage: 'on',
 Editor$Edit$Advanced$chkComments: 'on',
 Editor$Edit$Advanced$chkMainSyndication: 'on',
 Editor$Edit$lkbPost: '發(fā)布'
 }
 });
 return response;
 }
}

module.exports = Cnblogs;
嗯,我們建立一個 app.js 調(diào)用一下測試吧:
const cnblogs = require('./cnblogs');

const main = async () => {
 try {
 let response = await cnblogs.save('測試','測試內(nèi)容','2018-01-01');
 console.log(response);
 } catch (err) {
 console.error('[ERROR]', err);
 }
};

main();
執(zhí)行node app,我們發(fā)現(xiàn), 導(dǎo)入成功了。。我用類似的方法 從自己百度文章抓取文章,然后調(diào)用 cnblogs.save(); 進行導(dǎo)入:

抓取文章也是很簡單的,為了方便從response查找dom,我們可以用這個模塊 cheerio : , 就類似于我們做.NET的時候會用 HtmlAgilityPack 來查找dom一樣。

cheerio 可以去看看,他的語法跟jquery一樣,使用起來很方便。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

關(guān)于Nodejs實現(xiàn)的搬家工具知識的圖文代碼介紹

關(guān)于Nodejs實現(xiàn)的搬家工具知識的圖文代碼介紹:這篇文章 主要學(xué)習(xí)這兩個模塊的使用:request-promise-native : cheerio : nodejs有個request模塊,專門處理這些網(wǎng)絡(luò)請求方面的。 就像.NET也有request,webclient,httpclient啥的。nodejs的request使用方法在這,自己查一下: 而我喜
推薦度:
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top