国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

nodejs簡單抓包工具使用詳解

2024-05-06 16:54:29
字體:
來源:轉載
供稿:網友

前言

就是簡簡單單寫程序的我為什么需要抓包?

其實在平時寫demo的時候需要用到一些圖片和文本的資源的,但是需求量比較大,這個時候就想去網站上面直接復制啊,然后圖片另存為啊,什么的一系列繁瑣的操作。

但是現在不需要了,你只要看到這篇文章,你就很輕松了。本項目Github地址:

https://github.com/xiaoqiuxiong/reptileDemo

1.在你的電腦桌面新建一個reptileDemo文件夾。

然后進入文件夾,然后在改文件夾目錄下打開cmd。輸入下圖所示回車,連續按回車即可。

nodejs,抓包工具

初始化完之后,你會在文件夾里面看下package.json文件,里面就是一些基本的包管理基本配置。

2.cmd輸入下圖所示,然后回車

nodejs,抓包工具

這步是安裝cheerio模塊,主要是用來解釋html和使用jqueryAPI來操作請求返回的html。

3.cmd輸入下圖所示,然后回車

nodejs,抓包工具

這步是安裝request模塊,主要是用來發請求處理的。

4.文件夾內添加一個data文件夾,用來存放抓包的數據。

5.文件夾內新建app.js文件。添加內容如下:

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模塊向服務器發起一次get請求     http.get(x, function(res) {    // 用來存儲請求網頁的整個html內容    var html = '';    var titles = [];    // 防止中文亂碼    res.setEncoding('utf-8');     // 監聽data事件,每次取一塊數據    res.on('data', function(chunk) {      html += chunk;    });    // 監聽end事件,如果整個網頁內容的html都獲取完畢,就執行回調函數    res.on('end', function() {      // 采用cheerio模塊解析html      var $ = cheerio.load(html);       j = 0;      savedContent($);      i++;      console.log('抓包頁碼:' + i);      // 限制請求頁數      if (i <= 10) {        fetchPage(`http://www.silver.org.cn/cjyw/list_p_${i}.html`);      } else {        console.log('抓包完成');      };    });  }).on('error', function(err) {    console.log(err);  });}//保存內容function savedContent($) {  var item = $('.lt_col li')[j]  // 標題  var x = $(item).find('h2').text().trim();  // 內容  var y = $(item).find('p').text().trim();  // 圖片地址  var z = $(item).find('img').attr('src');  // 圖片文件名  var o = path.basename(z);  // 創建文件夾  fs.mkdir(`./data/${x}`, err => {    if (!err) {      // 保存文本      fs.appendFile(`./data/${x}/index.txt`, `標題:${x}/n內容:${y}`, 'utf-8', err => {        if (err) {          console.log(`****創建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); //主程序開始運行

本項目主要是抓取一個新聞網站的新聞列表數據,有標題,內容和圖片。

6.package.json修改如下:

"scripts": {  "test": "echo /"Error: no test specified/" && exit 1",  "dev": "node app.js" },

nodejs,抓包工具

完結。

做完上面操作之后你就可以使用cmd,然后輸入

nodejs,抓包工具

預覽

nodejs,抓包工具

nodejs,抓包工具

這樣就搞定了,是不是很爽啊。

瘋狂的程序員決不是靠狂妄和拼命的程序員,而是能夠腳踏實地,持續努力的程序員,一個程序員真正做到這兩點,技術上去后,唯一能限制他的只有想象力,到那個時候才算“瘋狂的程序員”,這種程序員,才能令對手無比恐懼。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仙桃市| 隆子县| 新郑市| 株洲市| 高雄市| 沂源县| 儋州市| 仲巴县| 济南市| 万山特区| 兖州市| 鲁甸县| 深圳市| 武平县| 云和县| 八宿县| 南靖县| 柏乡县| 阆中市| 梅州市| 图木舒克市| 山阳县| 神池县| 伊春市| 彩票| 沂南县| 双桥区| 涟源市| 合川市| 长泰县| 青铜峡市| 遵化市| 天祝| 田东县| 海阳市| 会宁县| 凉城县| 临海市| 分宜县| 元朗区| 剑河县|