使用阿里开源抓包工具Anyproxy 串改获取数据

1.Anyproxy 安装教程:参考其他同学的教程 https://www.jianshu.com/p/2074f7572694

2. 使用Anyproxy 代理抓包,通过nodejs 设置需要截获的数据

3.详细的使用说明请见官网 https://github.com/alibaba/anyproxy/tree/master/rule_sample 及实例 https://github.com/alibaba/anyproxy/blob/master/docs/cn/src_doc.md



nodejs拦截发送请求

var http = require('http');

var querystring = require('querystring');

module.exports = {

    *beforeSendResponse(requestDetail, responseDetail)

    {

        if (requestDetail.url.indexOf('beta.ihercules.cn') > 0) {

            const newRequestOptions = requestDetail.requestOptions;

            const newResponse = responseDetail.response;

            var req_data = decodeURIComponent(requestDetail.requestData);

            var post_data={"responseBody":newResponse.body.toString(),"requestUrl":requestDetail.url,"requestHeaders":newRequestOptions.headers,"requestBody":req_data};

            var content=JSON.stringify(post_data);

            var server_port

            if (requestDetail.url.indexOf('beta.ihercules.cn/message/getMessage') > 0) {

                server_port = 8877; //Java 服务

            }else{

                server_port = 5001; //Python 服务

            }


            var options = {

            host:'127.0.0.1',

            path: '/crawl',

            port:server_port,

            method: 'POST',

            headers: {

                'Content-Type': 'application/json'

                  }

            };

            var req = http.request(options, function(res){

                res.setEncoding('utf8');

                res.on('data',function(data){

                console.log("data:",data);

                });

            });

            req.write(content);

            req.end;

        }

  },

    *beforeDealHttpsRequest(requestDetail) {

        return true;

    }

};

3. windows 启动代理服务,抓取数据  anyproxy -i -p 8001 -w 8002 -r D:\anyproxycrawljs\shop.js

linux 启动 /usr/local/nodejs/node12/bin/anyproxy -i -p 8001 -w 8002 -r  /usr/local/nodejs/shop.js

MAC : anyproxy -i -p 8001 -w 8002 -r /Users/heavengifts/Desktop/nodejs/hs.js 

ps -ef | grep anyproxy

4. 开发服务端接口。对接数据库接收数据


接口提供


抓取俄罗斯6000多家电子烟店铺

注意 : 数据库表设计,shopid设置 UNIQUE 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 使用NodeJs爬取数据 前言 最近因为一个外行朋友让我帮忙整理一个网站的数据,我第一时间就想到了就写爬虫去爬取,...
    Martain阅读 11,348评论 6 6
  • 介绍 写后台管理程序,与之类似php .net java 目标 数据服务,文件服务,web服务 优势 性能高...
    勾勾GO阅读 758评论 0 3
  • 项目地址是:https://github.com/alibaba/anyproxy 本文分4个阶段 (1) any...
    瞎鼻子阅读 3,052评论 0 0
  • 客 户端的JavaScript是怎样的 什么是JavaScript? +是一个脚本语言 运行在浏览器(浏览器...
    hcySam阅读 419评论 0 2
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,557评论 16 22