您好,登錄后才能下訂單哦!
這篇文章主要介紹nodejs如何抓包工具,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
1.在你的電腦桌面新建一個reptileDemo文件夾。
然后進(jìn)入文件夾,然后在改文件夾目錄下打開cmd。輸入下圖所示回車,連續(xù)按回車即可。
初始化完之后,你會在文件夾里面看下package.json文件,里面就是一些基本的包管理基本配置。
2.cmd輸入下圖所示,然后回車
這步是安裝cheerio模塊,主要是用來解釋html和使用jqueryAPI來操作請求返回的html。
3.cmd輸入下圖所示,然后回車
這步是安裝request模塊,主要是用來發(fā)請求處理的。
4.文件夾內(nèi)添加一個data文件夾,用來存放抓包的數(shù)據(jù)。
5.文件夾內(nèi)新建app.js文件。添加內(nèi)容如下:
let fs = require('fs'); let cheerio = require('cheerio'); let request = require('request'); let path = require('path'); let i = 0; let j = 0; //初始需要抓取的頁面url let url = "http://www.silver.org.cn/cjyw/list_p_1.html"; let http = url.includes('https') ? require('https') : require('http'); function startRequest(x) { // 采用http模塊向服務(wù)器發(fā)起一次get請求 http.get(x, function(res) { // 用來存儲請求網(wǎng)頁的整個html內(nèi)容 var html = ''; var titles = []; // 防止中文亂碼 res.setEncoding('utf-8'); // 監(jiān)聽data事件,每次取一塊數(shù)據(jù) res.on('data', function(chunk) { html += chunk; }); // 監(jiān)聽end事件,如果整個網(wǎng)頁內(nèi)容的html都獲取完畢,就執(zhí)行回調(diào)函數(shù) res.on('end', function() { // 采用cheerio模塊解析html var $ = cheerio.load(html); j = 0; savedContent($); i++; console.log('抓包頁碼:' + i); // 限制請求頁數(shù) if (i <= 10) { fetchPage(`http://www.silver.org.cn/cjyw/list_p_${i}.html`); } else { console.log('抓包完成'); }; }); }).on('error', function(err) { console.log(err); }); } //保存內(nèi)容 function savedContent($) { var item = $('.lt_col li')[j] // 標(biāo)題 var x = $(item).find('h3').text().trim(); // 內(nèi)容 var y = $(item).find('p').text().trim(); // 圖片地址 var z = $(item).find('img').attr('src'); // 圖片文件名 var o = path.basename(z); // 創(chuàng)建文件夾 fs.mkdir(`./data/${x}`, err => { if (!err) { // 保存文本 fs.appendFile(`./data/${x}/index.txt`, `標(biāo)題:${x}\n內(nèi)容:${y}`, 'utf-8', err => { if (err) { console.log(`****創(chuàng)建txt失敗****: ${x}`); } }); // 保存圖片 request.head(z, (err, res, body) => { if (err) { console.log(`****請求圖片失敗****: ${x}`); } }); // 寫圖片到本地 request(z).pipe(fs.createWriteStream(`./data/${x}/${o}`)); j++; if (j <= $('.lt_col li').length - 1) { savedContent($) } } }) } startRequest(url); //主程序開始運(yùn)行
本項目主要是抓取一個新聞網(wǎng)站的新聞列表數(shù)據(jù),有標(biāo)題,內(nèi)容和圖片。
6.package.json修改如下:
"scripts": { "test": "echo \"Error: no test specified\" && exit 1", "dev": "node app.js" },
完結(jié)。
做完上面操作之后你就可以使用cmd,然后輸入
預(yù)覽
這樣就搞定了,是不是很爽啊。
瘋狂的程序員決不是靠狂妄和拼命的程序員,而是能夠腳踏實地,持續(xù)努力的程序員,一個程序員真正做到這兩點,技術(shù)上去后,唯一能限制他的只有想象力,到那個時候才算“瘋狂的程序員”,這種程序員,才能令對手無比恐懼。
以上是“nodejs如何抓包工具”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。