微信3.7版小程序数据分析

这篇具有很好参考价值的文章主要介绍了微信3.7版小程序数据分析。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

微信3.7版小程序数据分析

mitmproxy的使用

mitmproxy监听不到小程序(3.7以前可以用)



前言

随着微信防爬技术的再度升级,之前Python+mitmproxy利用网络代理这种中间人的方式已经爬取不到微信小程序的数据了。俗话世上无难事只要肯放弃,本以为已经无计可施了,在某天不经意间发现一个神器依然可以抓到小程序的包,于是开始研究如何实现自动爬取。


一、微信小程序是如何实现防止中间人攻击的?

老版本微信小程序请求逻辑

微信3.7版小程序数据分析

新版微信小程序请求数逻辑

微信3.7版小程序数据分析

二、神器是什么?它是如何实现抓包的?

神器下载

下载传送门

微信3.7版小程序数据分析

神器的抓包原理

它是直接扫描进程池,通过进程监听实现抓包。

如何实现全自动抓取数据?

笨方法

直接使用python控制鼠标点击,就像按键精灵一样把JSON复制粘贴出来然后进行数据分析

import pyWinhook as pyHook
import pythoncom 
from pymouse import PyMouse
import win32api
import win32con
import time
import json
import re
import pymongo

myMouse = PyMouse()
#开启数据库连接
collection = pymongo.MongoClient()['美团外卖']['药店']
collection2 = pymongo.MongoClient()['美团外卖']['药店_shop_info']
collection3 = pymongo.MongoClient()['美团外卖']['药店_spuList']
# 存储门店id
def static_vars(**kwargs):
    def decorate(func):
        for k in kwargs:
            setattr(func, k, kwargs[k])
        return func
    return decorate
@static_vars(soterid = '')

#获取当前的鼠标位置
def getcoord():
	nowP = myMouse.position()
	return nowP
# 监听爬取
def response(flow):
    target_url = 'poi/sputag/products'
    shop_info_url = 'poi/food'
    if shop_info_url in flow.request.url:
        item = {}
        item['data'] = json.loads(flow.response.text)['data']
        item['id'] = item['data']['poi_info']['id']
        response.soterid=item['id']
        item['shop_name'] = item['data']['poi_info']['name']
        pageCategoryDict = {}
        for cate in item['data']['food_spu_tags']:
            tag = cate['tag']
            pageCategoryDict[tag] = cate
        item['pageCategoryDict'] = pageCategoryDict
        print('shop_name:',item['shop_name'])
        if not collection2.find_one({'id': item['id']}):
            collection2.insert_one(item)
        else:
            collection2.update({'id': item['id']}, item)
    if target_url in flow.request.url:
        shop_id = response.soterid
        print('>>>>>>店铺id:',shop_id)
        data = json.loads(flow.response.text)['data']
        tag_id = data['product_tag_id']
        nextPageIndex = data['current_page']
        id = f'{shop_id}_{tag_id}_{nextPageIndex}'
        spuList = data['product_spu_list']
        item = {}
        item['shop_id'] = shop_id
        item['tag_id'] = 1
        item['id'] = 2
        item['spuList'] = spuList
        if spuList:
            for spu in spuList:
                spu_name = spu['name']
                print('>>>>>>插入:',spu_name)
                item1={}
                item1["shopid"] = shop_id
                spu_id= spu["id"]
                sputableid = f'{shop_id}_{tag_id}_{spu_id}'
                print('>>>>>>插入:',sputableid)
                item1["id"] = sputableid
                item1["name"] = spu_name
                item1["minprice"] =spu["min_price"]
                item1["promotioninfo"] =spu["promotion_info"]
                item1["monthsale"] =spu["month_saled_content"]
                goods=spu['skus']
                if goods:
                  for sku in goods:
                    item1["stock"]=sku['stock']
                    item1["status"] =sku["status"]
                collection3.insert_one(item1)
            if not collection.find_one({'id':id}):
                collection.insert_one(item)
            else:
                collection.update({'id':id},item)

#初次进入门店鼠标坐标
x=1121
y=389
# 进入门店
def enterStore(x,y):
	time.sleep(2)
	myMouse.click(x,y,1,1)
# 退出门店
def exitStore(x,y):
	time.sleep(2)
	myMouse.click(776,147,1,1)
	print("已退出门店")
	#移会门店列表
	myMouse.move(x,y)

FirestStore=True
storenum=0;
def nextStore(FirestStore,storenum,x,y):
	exitStore(x,y)
	time.sleep(2)
	print("准备进入下一个门店")
	if FirestStore==True:
		win32api.mouse_event(win32con.MOUSEEVENTF_WHEEL,0,0,-400)
		FirestStore=False
		print(FirestStore)
	else:
			if storenum<=3:
				storenum=storenum+1
				y=y-30
				myMouse.move(x,y)
			else:
				print(FirestStore)
				win32api.mouse_event(win32con.MOUSEEVENTF_WHEEL,0,0,-50)


	enterStore(x,y)

nowP=getcoord()
print(nowP)
#鼠标移动到坐标(x,y)处
#myMouse.move(600,800)
#鼠标点击,x,y是坐标位置 button 1表示左键,2表示点击右键 n是点击次数,默认是1次,2表示双击
myMouse.click(1123,387,1,1)
print("点击事件完成")
time.sleep(3)
win32api.mouse_event(win32con.MOUSEEVENTF_WHEEL,0,0,-300)
print("滚动事件完成")
nowP=getcoord()
#进入第一个门店
enterStore(nowP[0],nowP[1])


nextStore(FirestStore,storenum,nowP[0],nowP[1])
nextStore(FirestStore,storenum,nowP[0],nowP[1])
nextStore(FirestStore,storenum,nowP[0],nowP[1])

高端方法

反编译程序或者找到抓包程序的缓存文件,这些请求记录肯定是会有缓存文件的,找到它的存储位置然后直接读取文件进行数据分析。
(暂时还没有找到)


总结

只要是数据交换那就一定能抓到包。不要轻言放弃有时候换个思考方式就能得到想要的答案。我在用这个神器之前也试过 Proxifier 、Wireshark等相对出名的数据分析程序。但是他们抓到的包都是没有经过任何处理的原始数据,这种数据对于我这种菜鸡来说和天书没啥区别。当时就准备放弃了。文章来源地址https://www.toymoban.com/news/detail-502724.html

到了这里,关于微信3.7版小程序数据分析的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据驱动成功:小程序积分商城的数据分析

    在当今数字化时代,数据被认为是企业成功的关键。小程序积分商城是一种流行的营销工具,可帮助企业吸引和留住客户,并提供有关客户行为和偏好的宝贵数据。本文将深入探讨如何通过数据分析实现小程序积分商城的成功,包括数据的收集、分析和应用。 第一部分:小程

    2024年02月09日
    浏览(33)
  • 19.matlab数据分析插值(matlab程序)

    1. 简述        数据插值的计算机制 数据插值是一种函数逼近的方法。 一维插值 Y1=interp1(X,Y,X1,method) 二维插值 interp2():二维插值函数。 调用格式: Z1=interp2(X,Y,Z,X1,Y1,method) 其中,X、Y是两个向量,表示两个参数的采样点, Z是采样点对应的函数值。X1、 Y1是两个标量或向量,表示

    2024年02月16日
    浏览(26)
  • 数据驱动成功:商城小程序分析与改进

    在当今数字化时代,商城小程序成为了企业与消费者之间互动的重要途径。然而,一个成功的商城小程序不仅仅是一个购物平台,更需要通过数据分析不断进行改进和优化,以提升用户体验和营销效果。本文将深入探讨如何利用数据驱动的方式进行商城小程序分析与改进,以

    2024年02月12日
    浏览(32)
  • 22matlab数据分析 拉格朗日插值(matlab程序)

    1. 简述        第一部分:问题分析 (1)实验题目:拉格朗日插值算法 具体实验要求:要求学生运用拉格朗日插值算法通过给定的平面上的n个数据点,计算拉格朗日多项式Pn(x)的值,并将其作为实际函数f(x)的估计值。用matlab编写拉格朗日插值算法的代码,要求代码实现用户

    2024年02月15日
    浏览(28)
  • 数学建模——数据包络分析步骤及程序详解

    数据包络分析(Data envelopment analysis,DEA)是运筹学和研究经济生产边界的一种方法。该方法一般被用来测量一些决策部门的生产效率。这里数据包络分析针对特定的题目比较单一,可以解释的点(水论文)相对较少。但是在特定的产入产出问题优化上,却有着很强的实际应用

    2024年02月10日
    浏览(30)
  • 【数据分析】如何使用docker部署程序并移植(算法、接口)

    原文作者 :我辈李想 版权声明 :文章原创,转载时请务必加上原文超链接、作者信息和本声明。 我这里学的有限,docker部署程序就以算法、接口为例。移植涉及到2个服务器,我们把移植前服务器称为前服务器,移植后的服务器称为后服务器。 docker镜像操作 其中REPOSITORY:

    2024年02月10日
    浏览(36)
  • 【2023程序员必看】大数据行业分析

    1、政策重点扶持,市场前景广阔 2014年,大数据首次写入政府工作报告,大数据逐渐成为各级政府关注的热点。 2015年9月,国务院发布《促进大数据发展的行动纲要》,大数据正式上升至国家战略层面,十九大报告提出要推动大数据与实体经济的深度融合。 在2021年发布的“

    2024年02月08日
    浏览(45)
  • 技术探索|范铭:小程序中用户隐私数据合规分析

    “隐语”是开源的可信隐私计算框架,内置 MPC、TEE、同态等多种密态计算虚拟设备供灵活选择,提供丰富的联邦学习算法和差分隐私机制 开源项目 github.com/secretflow gitee.com/secretflow 11月25日,「隐语开源社区 Meetup·西安站」顺利举办,本文为大家带来的是西安交通大学网络空

    2024年02月03日
    浏览(28)
  • 微软发布Fabric_Ai Copilot助力数据分析_一句话让他做数据挖掘和分析_数据分析师_设计师_程序员_真的要失业了吗---数据设计分析001

    前段时间微软发布的AI Copilot,可以嵌入到Worldl,Excel,PPT中帮助进行智能的绘图,分析等操作, 今天~ Fabric 是自 SQL Server 以来最重要的数据平台创新,是对 Power BI 和分析平台最重要的扩展。 微软发布了一个东西,叫 Fabric。第一,它是一个彻底统一的分析平台,包括了:大数据,数据

    2024年02月11日
    浏览(44)
  • 基于Echarts的超市销售可视化分析系统(数据+程序+论文

    本论文旨在研究Python技术和ECharts可视化技术在超市销售数据分析系统中的应用。本系统通过对超市销售数据进行分析和可视化展示,帮助决策层更好地了解销售情况和趋势,进而做出更有针对性的决策。本系统主要包括数据处理、数据可视化和系统测试三个模块。其中,数据

    2024年04月17日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包