麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > JavaScript > 正文

nodejs簡(jiǎn)單抓包工具使用詳解

2019-11-19 10:59:33
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

前言

就是簡(jiǎn)簡(jiǎn)單單寫(xiě)程序的我為什么需要抓包?

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

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

https://github.com/xiaoqiuxiong/reptileDemo

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

然后進(jìn)入文件夾,然后在改文件夾目錄下打開(kāi)cmd。輸入下圖所示回車(chē),連續(xù)按回車(chē)即可。

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

2.cmd輸入下圖所示,然后回車(chē)

這步是安裝cheerio模塊,主要是用來(lái)解釋html和使用jqueryAPI來(lái)操作請(qǐng)求返回的html。

3.cmd輸入下圖所示,然后回車(chē)

這步是安裝request模塊,主要是用來(lái)發(fā)請(qǐng)求處理的。

4.文件夾內(nèi)添加一個(gè)data文件夾,用來(lái)存放抓包的數(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;//初始需要抓取的頁(yè)面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請(qǐng)求     http.get(x, function(res) {    // 用來(lái)存儲(chǔ)請(qǐng)求網(wǎng)頁(yè)的整個(gè)html內(nèi)容    var html = '';    var titles = [];    // 防止中文亂碼    res.setEncoding('utf-8');     // 監(jiān)聽(tīng)data事件,每次取一塊數(shù)據(jù)    res.on('data', function(chunk) {      html += chunk;    });    // 監(jiān)聽(tīng)end事件,如果整個(gè)網(wǎng)頁(yè)內(nèi)容的html都獲取完畢,就執(zhí)行回調(diào)函數(shù)    res.on('end', function() {      // 采用cheerio模塊解析html      var $ = cheerio.load(html);       j = 0;      savedContent($);      i++;      console.log('抓包頁(yè)碼:' + i);      // 限制請(qǐng)求頁(yè)數(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('h2').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(`****請(qǐng)求圖片失敗****: ${x}`);        }      });      // 寫(xiě)圖片到本地      request(z).pipe(fs.createWriteStream(`./data/${x}/${o}`));      j++;      if (j <= $('.lt_col li').length - 1) {        savedContent($)      }    }  })}startRequest(url); //主程序開(kāi)始運(yùn)行

本項(xiàng)目主要是抓取一個(gè)新聞網(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ù)覽

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

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

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 一级免费a | 自拍偷拍亚洲图片 | 欧产日产国产精品乱噜噜 | 中文字幕极速在线观看 | 男人的天堂色偷偷 | 国产在线地址 | 在线高清中文字幕 | 久久成人综合视频 | 素人视频在线观看免费 | 欧美激情999 | 少妇一级淫片高潮流水电影 | 亚洲国产精品久久久久婷婷老年 | 国产一区日韩精品 | 在线亚洲综合 | 午夜视频在线观看免费视频 | 欧美成人精品一区二区 | 99国产精成人午夜视频一区二区 | 亚洲精品在线观看免费 | 欧美一级小视频 | 国产成年人视频 | 欧美日韩成人一区二区 | 91精品国产综合久久久动漫日韩 | 成人男女啪啪免费观看网站四虎 | 二区三区四区视频 | 黄色免费高清网站 | 在线播放亚洲视频 | 久草手机视频在线观看 | 欧美成人三级大全 | 亚州综合图片 | 五月天堂av91久久久 | xxxxhdhdhdhd日本| 天天躁狠狠躁夜躁2020挡不住 | 精品久久久久久综合日本 | 一级毛片免费大片 | 久草成人在线观看 | 一级免费看片 | 视频一区二区三区视频 | 天天都色视频 | 禁漫天堂久久久久久久久久 | 撅高 自己扒开 调教 | 久久久久久久久久亚洲精品 |