广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python如何实现逆向微信指数爬取
  • 698
分享到

python如何实现逆向微信指数爬取

2023-06-29 02:06:37 698人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章给大家分享的是有关python如何实现逆向微信指数爬取的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。微信指数爬取 Appium + mitmproxy + 网易mumu安卓模拟器实现微信指数小程

这篇文章给大家分享的是有关python如何实现逆向微信指数爬取的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

微信指数爬取 

Appium + mitmproxy + 网易mumu安卓模拟器实现微信指数小程序爬取

通过appium实现将指令传输给手机进行相关的操作,mitmproxy运行Python脚本过滤出相关的请求,安卓模拟器取代真机使项目可以更好的落地。

1.Mac系统Appium的环境搭建

1. homebrew的安装
/usr/bin/ruby -e "$(curl -fsSL https://raw.GitHubusercontent.com/Homebrew/install/master/install)"
2. 通过brew安装node
brew install node

检查node是否安装成功

node -v
3. 安装npm
sudo bashsudo curl -L Https://npmjs.org/install.sh | sh

检查npm是否安装完成

npm -v
4. 安装Android-sdk-macosx

链接: android-sdk-macosx.
下载完成因sdk缺少对应的platfORM-tools和build-tools 执行命令在弹出窗口进行勾选下载platform-tools和build-tools

python如何实现逆向微信指数爬取

5. 安装jdk

去官网下载:下载地址为直接下载dmg去安装

链接:JDK

6. 环境变量配置

可参考以下配置

cd ~
vi .bash_profile

JAVA_HOME=/Library/java/JavaVirtualMachines/jdk1.8.0_201.jdk/Contents/HomeCLASSPAHT=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarPATH=$JAVA_HOME/bin:$PATH:export JAVA_HOMEexport CLASSPATHexport PATHexport ANDROID_HOME=/Users/admin/Desktop/android-sdk-macosxexport PATH=$PATH:$ANDROID_HOME/toolsexport PATH=$PATH:$ANDROID_HOME/platform-tools

source .bash_profile

7. 安装appium-doctor

检查已有的环境是否都已成功

npm install -g appium-doctor

安装完成appium-doctor 在终端输入appium-doctor命令自动检查appium所依赖的包是否有缺失

python如何实现逆向微信指数爬取

8. 安装appium命令行版
npm install -g appium

appium -v 查看版本号

9. 安装mitmproxy

(抓包,中间人代理工具、支持SSL)

brew install mitmproxy

具体用法自行研究 本文只是简单的使用

10.安装网易mumu安卓模拟器

官网直接下载 有Mac版的

2.微信指数小程序爬取

1.启动appium 在终端输入
appium
2.启动网易mumu安卓模拟器并安装微信

python如何实现逆向微信指数爬取

3. 查看adb连接的设备

adb devices

首次需要先连接到模拟器 网易mumu端口号为7555 终端输入

adb connect 127.0.0.1:7555

python如何实现逆向微信指数爬取

4. 模拟器安装mitmproxy证书

python如何实现逆向微信指数爬取

python如何实现逆向微信指数爬取

将该证书打开在钥匙串中找到修改全部信任
然后在模拟器中安装 打开模拟器的设置—安全—从SD卡安装

python如何实现逆向微信指数爬取

打开内部存储空间—MuMu共享文件夹—将信任的证书拖进去即可

python如何实现逆向微信指数爬取

5.通过抓包发现微信指数小程序生成search_key的接口

python如何实现逆向微信指数爬取

python如何实现逆向微信指数爬取

编写Python脚本过滤出该请求并将该请求的响应内容(search_key)写入MonGo

import JSONimport timeimport sysfrom pymongo import MongoClientdef response(flow):    client = MongoClient("xx.xx.xx.xx",27017)    db = client["Spider"]    url = "https://search.weixin.qq.com/cgi-bin/searchWEB/weapplogin"    if flow.request.url.startswith(url):        text = flow.response.text        data = json.loads(text)        search_key = data.get("data").get("search_key")        with open("./search_key.txt",'w+') as f:            f.write(search_key)        '''        search_key 博主是入库然后scrapy爬虫从库中读search_key进行请求 具体怎么用自己按情况即可        '''

使用mitmdump -s xxx.py 执行Python脚本

mitmdump -s test.py

先手动点击进入微信指数小程序触发生成search_key的接口 此时mitmproxy运行python程序按照代码对该请求进行过滤并将响应中的search_key取出写入到本地文件

python如何实现逆向微信指数爬取


到了这一步大家应该已经知道微信指数小程序的爬取方式了 在这里说下生成search_key接口的触发规则:首次进入微信指数小程序 2.三十分钟search_key失效

6.编写appium模拟点击微信进入微信指数小程序触发search_key指令代码
import timefrom appium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.common.exceptions import NoSuchElementExceptionfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom pymongo import MongoClientPLATFORM='Android'deviceName='emulator-5554'# app_package和app_activity可以通过adb shell进行获取app_package='com.tencent.mm'app_activity='.ui.LauncherUI'driver_server='http://127.0.0.1:4723/wd/hub'class Moments():    def __init__(self):        self.desired_caps={        'platformName':PLATFORM,        'deviceName':deviceName,        'appPackage':app_package,        'appActivity':app_activity,        'noReset': "True",        }        self.driver=webdriver.Remote(driver_server,self.desired_caps)        self.wait=WebDriverWait(self.driver,300)    def login(self):        # 允许获取xx        yunxu1 = self.wait.until(EC.presence_of_element_located((By.ID,'com.android.packageinstaller:id/permission_allow_button')))        yunxu1.click()        time.sleep(5)        # 允许获取xxx        yunxu2 = self.wait.until(EC.presence_of_element_located((By.ID,'com.android.packageinstaller:id/permission_allow_button')))        yunxu2.click()        time.sleep(5)        # 登陆按钮        login = self.wait.until(EC.presence_of_element_located((By.ID,'com.tencent.mm:id/d75')))        login.click()        time.sleep(3)        # 手机号        phone = self.wait.until(EC.presence_of_element_located((By.ID,'com.tencent.mm:id/hz')))        phone.send_keys("xxxxxx")        time.sleep(3)        # 下一步        nextButton = self.wait.until(EC.presence_of_element_located((By.ID,'com.tencent.mm:id/alr')))        nextButton.click()        time.sleep(2)        # 密码        passButton = self.wait.until(EC.presence_of_element_located((By.ID,"com.tencent.mm:id/hz")))        passButton.send_keys("xxxxx")        time.sleep(2)        # 登陆        login2 = self.wait.until(EC.presence_of_element_located((By.ID,'com.tencent.mm:id/alr')))        login2.click()        time.sleep(6)        # 不允许获取通讯录        notButton = self.wait.until(EC.presence_of_element_located((By.ID,"com.tencent.mm:id/an2")))        notButton.click()        time.sleep(5)    def test(self):    '''    登陆之后 依次点击发现 小程序 微信指数 触发接口    '''        time.sleep(10)        self.driver.tap([(428,1214),(471,1251)],100)        time.sleep(5)        # 发现页小程序的坐标        self.driver.tap([(85,787),(148,816)],100)        time.sleep(5)        self.driver.tap([(114,237),(206,269)],100)        time.sleep(20)        self.driver.tap([(644,42),(708,85)],100)    def main(self):        # 首次登陆        self.login()        self.test()M=Moments()M.main()

郑重声明:首次登陆以后的每次操作只需要执行test方法点击到发现—小程序—微信指数即可,可以通过noReset:True设置每次不重新安装app,所以不必每次都登陆账号导致增加不必要的操作
通过uiautomatorviewer获取appium页面元素进行定位

python如何实现逆向微信指数爬取

python如何实现逆向微信指数爬取

感谢各位的阅读!关于“python如何实现逆向微信指数爬取”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: python如何实现逆向微信指数爬取

本文链接: https://www.lsjlt.com/news/322239.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python如何实现逆向微信指数爬取
    这篇文章给大家分享的是有关python如何实现逆向微信指数爬取的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。微信指数爬取 Appium + mitmproxy + 网易mumu安卓模拟器实现微信指数小程...
    99+
    2023-06-29
  • python逆向微信指数爬取实现步骤
    目录微信指数爬取 1.MAC系统Appium的环境搭建1. homebrew的安装2. 通过brew安装node3. 安装npm4. 安装android-sdk-macos...
    99+
    2022-11-13
  • python如何实现微信公众号文章爬取
    小编给大家分享一下python如何实现微信公众号文章爬取,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体步骤如下:一、安装代理服务器目前使用的是Anyproxy...
    99+
    2023-06-19
  • Python实现微信好友数据爬取及分析
    目录前言1.数据分析2.好友性别3.好友头像4.好友签名5.好友位置前言 随着微信的普及,越来越多的人开始使用微信。微信渐渐从一款单纯的社交软件转变成了一个生活方式,人们的日常沟通需...
    99+
    2022-11-12
  • Python如何逆向抓取APP数据
    本篇内容介绍了“Python如何逆向抓取APP数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!所需设备和环境:设备:安卓手机抓包:fidd...
    99+
    2023-06-16
  • 如何使用Python逆向抓取APP数据
    今天给大伙分享一下 Python 爬虫的教程,这次主要涉及到的是关于某 APP 的逆向分析并抓取数据,关于 APP 的反爬会麻烦一些,比如 Android 端的代码写完一般会进行打包并混淆加密加固,所以除了抓包之外,...
    99+
    2022-06-02
    Python逆向抓取APP数据 Python逆向抓取 Python 抓取APP数据
  • python爬虫如何爬取微博粉丝数据
    这篇文章主要介绍了python爬虫如何爬取微博粉丝数据,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。python可以做什么Python是一种编程语言,内置了许多有效的工具,P...
    99+
    2023-06-14
  • Python爬取微信读书实现读书免费自由
    目录前情提要爬取小说白嫖小说大家好,我是小五 前情提要 不知道用微信读书的朋友多不多,这里顺便安利一下哈。 我目前看电子书的话基本都是在用微信读书,毕竟白嫖的无限卡真香。 在微信读...
    99+
    2022-11-12
  • Python如何实现获取微信企业号access_token的Class
    小编给大家分享一下Python如何实现获取微信企业号access_token的Class,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一...
    99+
    2022-10-19
  • python如何实现向上取整
    目录python如何取整1、向下取整2、四舍五入3、向上取整4、分别取整数部分和小数部分python中的取整问题先看一段代码总结python如何取整 数据处理是编程中不可避免的,很多...
    99+
    2023-01-31
    python向上取整 python取整 python如何取整
  • python中selenium如何实现智联招聘数据爬取
    这篇文章将为大家详细讲解有关python中selenium如何实现智联招聘数据爬取,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Py...
    99+
    2023-06-14
  • Python如何实现前向和反向自动微分
    本文小编为大家详细介绍“Python如何实现前向和反向自动微分”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python如何实现前向和反向自动微分”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1 自动微分许多经...
    99+
    2023-07-04
  • python如何使用pywinauto驱动微信客户端实现公众号爬虫
    这篇文章主要介绍了python如何使用pywinauto驱动微信客户端实现公众号爬虫,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。pywinauto简介pywinauto是一...
    99+
    2023-06-15
  • 如何实现python爬虫爬取视频时实现实时进度条显示
    目录一、全部代码展示二、解释1.with closingwith用法(实现上下文管理)closing用法(完美解决上述问题)2.文件流stream3.response.headers...
    99+
    2022-11-11
  • 如何使用Python爬虫实现抓取电影网站信息并入库
    这篇文章主要介绍如何使用Python爬虫实现抓取电影网站信息并入库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一.环境搭建1.下载安装包访问 Python官网下载地址:https://www.python.org/...
    99+
    2023-06-29
  • 微信小程序如何实现轮播图指示器
    这篇文章主要讲解了“微信小程序如何实现轮播图指示器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“微信小程序如何实现轮播图指示器”吧!1.文件目录2.轮播图页面布局需求:自定义轮播指示器:当轮...
    99+
    2023-07-02
  • 微信小程序如何实现会动的指南针
    本篇内容主要讲解“微信小程序如何实现会动的指南针”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序如何实现会动的指南针”吧!创建/添加图像资源首先用Word画,然后转换成png。接下来在小...
    99+
    2023-06-19
  • Python中如何爬取京东商品数据并实现数据可视化
    这篇文章将为大家详细讲解有关Python中如何爬取京东商品数据并实现数据可视化,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、开发工具Python版本:3.6.4相关模块:DecryptLogin模块;...
    99+
    2023-06-15
  • Thinkphp5微信小程序如何实现获取用户信息接口
    这篇文章主要为大家展示了“Thinkphp5微信小程序如何实现获取用户信息接口”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Thinkphp5微信小程序如何实现...
    99+
    2022-10-19
  • vue3如何实现微信扫码登录及获取个人信息
    这篇文章主要讲解了“vue3如何实现微信扫码登录及获取个人信息”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue3如何实现微信扫码登录及获取个人信息”吧!一、流程:微信提供的扫码方式有两种...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作