nodejs简单抓包工具

就是简简单单写程序的我为什么需要抓包?

其实在平时写demo的时候需要用到一些图片和文本的资源的,但是需求量比较大,这个时候就想去网站上面直接复制啊,然后图片另存为啊,什么的一系列繁琐的操作。

但是现在不需要了,你只要看到这篇文章,你就很轻松了。



本项目Github地址: https://github.com/xiaoqiuxiong/reptileDemo

1.在你的电脑桌面新建一个reptileDemo文件夹。

然后进入文件夹,然后在改文件夹目录下打开cmd。输入下图所示回车,连续按回车即可。

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



2.cmd输入下图所示,然后回车

这步是安装cheerio模块,主要是用来解释html和使用jqueryAPI来操作请求返回的html。

3.cmd输入下图所示,然后回车

这步是安装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"
  },

完结。



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

预览

这样就搞定了,是不是很爽啊。

原文地址:https://www.cnblogs.com/it-xiong/p/11396019.html

时间: 2024-10-18 13:40:43

nodejs简单抓包工具的相关文章

MAC下最好用的抓包工具charles简单操作教程,charles mac入门

Charles for Ma是 mac 平台上一款非常强大的抓包神器,可以让开发者监视查看所有连接互联网的 HTTP 通信,包括请求,响应和 HTTP 头信息等等,charles mac让您的 Internet 连接调试任务更加快速和轻松!今天小编给大家带来了charles简单操作教程,算是charles mac入门吧,感兴趣的可以来看看! 1.抓浏览器网页请求 其实浏览器的请求一般用浏览器的开发者工具就可以,当然charles也可以做到,使用方法呢,也很简单 将你链接的网络,配置网页代理,注意

抓包工具fiddler的简单使用

一.fiddler 的简单介绍 fiddler是一款比较强大的抓包工具,它可以记录所有客户端和服务器的http和https请求,并且允许设置断点.监视.修改输入输出等数据.当测试或者开发人员需要验证发送的消息是否正确,或者在出现问题的时候,查看手机客户端发送给server端的包内容是否正确,此时fiddler可以帮助我们很好地解决问题. 二.fiddler 的简单使用 1.要抓取手机上APP的数据包,第一步是要对fiddler进行设置:选择"Tools"项,在点击"Optio

推荐一些socket工具,TCP、UDP调试、抓包工具. 还记得我在很久很久以前和大家推荐的Fiddler和Charles debugger么?他们都是HTTP的神器级调试工具,非常非常的好用。好工具

还记得我在很久很久以前和大家推荐的Fiddler和Charles debugger么?他们都是HTTP的神器级调试工具,非常非常的好用.好工具能让你事半功倍,基本上,我是属于彻头彻尾的工具控. 假如有一天,你写"传统"的PHP有些累了,想玩玩socket了,搞搞python.NodeJS.GO之类的新兴语言或框架(当然我不是说这些语言不能写web),或者干脆就用PHP吧,事实上PHP5.4的性能提高的真是相当之多,用PHP 的socket函数就能简单的写一个web socket服务器

Python+Requests接口测试教程(1):Fiddler抓包工具

本书涵盖内容:fiddler.http协议.json.requests+unittest+报告.bs4.数据相关(mysql/oracle/logging)等内容.刚买须知:本书是针对零基础入门接口测试和python+requests自动化的,首先本书确实写的比较基础,对基础内容也写的很详细,所以大神绕道. 为什么要先学fiddler? 学习接口测试必学http协议,如果直接先讲协议,我估计小伙伴们更懵,为了更好的理解协议,先从抓包开始.结合抓包工具讲http协议更容易学一些. 1.1 抓fir

socket和抓包工具wireshark

最近在学习Python代码中的socket和抓包工具wireshark,故又将socket等概念又学习了一遍,温故而知新: Python代码如下: server: #!/usr/bin/python # -*- coding: UTF-8 -*- # 文件名:server.py import socket # 导入 socket 模块 s = socket.socket() # 创建 socket 对象 host = socket.gethostname() # 获取本地主机名 port = 1

抓包工具

原文:抓包工具 抓包工具:顾名思义.耳熟能详.tcpdump.wireshark.sniffsmart.httpwatch(还算有点良心)... 但当其只是当为工具使用时,又贵为可惜.因工作需要,再度涉及该领域. 可随想云随风去,江河大变.某某文公司镜像工具,价比天高.某某调公司主打产品,爱理不理. 脑中闪过一句 码农何苦为难码农. 下班后闭关修炼3周,输出类似功能,自己动手丰衣足食.感谢libpcap,感谢gnu.下面把一些心得与君共享. 起步 网上有很多libpcap的起步教程,这里就不几大

Fiddler抓包工具

Python+Requests接口测试教程(1):Fiddler抓包工具 欢迎您来阅读和练手!您将会从本章的详细讲解中,获取很大的收获!开始学习吧! 目录 为什么要先学fiddler? 1.1 抓firefox上https请求 1.2 证书导出失败问题 1.3 只抓APP的请求 1.4 查看get与post请求 1.5 工具介绍(request和response) 1.6 接口测试(Composer) 1.7 get请求(url详解) 1.8 post请求(body) 1.9 打断点(bpu)

tcpdump 命令行抓包工具

为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3898248.html 概述 tcpdump命令是Linux中的截包命令工具,强大且易于使用.tcpdump基于底层libpcap库开发,运行需要root权限. 基本使用与命令选项 例:截获主机收到和发出的所有数据包. 命令:tcpdump 说明: tcpdump截取包默认显示数据包的头部. 基础格式:时间 数据包类型 源

tcpdump抓包工具

一.概述 tcpdump是一个用于截取网络分组,并输出分组内容的工具,简单说就是数据包抓包工具.tcpdump凭借强大的功能和灵活的截取策略,使其成为Linux系统下用于网络分析和问题排查的首选工具. 二.选项 -A 以ASCII格式打印出所有分组,并将链路层的头最小化. -c 在收到指定的数量的分组后,tcpdump就会停止. -C 在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数file_size 中指定的大小.如果超过了指定大小,则关闭当前文件,然后在打开一个新的文件.参数