Python自动化爬取App数据

python3爬虫实战(二):用Appium抓取手机app微信的数据 一、前言 上一篇小说爬的是电脑端的静态网址,一直想爬手机端app数据的抓取,研究有好几天了,在网上也找了各种教程,差点挂在appium的环境安装。本编教程从appium的环境配置开始到抓取手机app微信朋友圈结束。 二、参考博文 以下网址对于这篇教程非常重要,感谢分享 悠悠博主appium+python环境搭建:https://www.cnblogs.com/yoyoketa... 阅读详情

基本环境配置

版本:Python3

系统:Windows

需要安装:

1.JDK - Download JDK,Appium要求用户必须配置JAVA环境, 否则启动Seesion报错。

2.Appium - Download Appium, 安装过程请自行搜索。

3.Android SDK - Download SDK

4. Selenium - 建议使用低版本的Python Selenium库,在Chrome高版本可能会报错。例如:

pip3 install selenium==2.48.0

5. chromedriver.exe - Download Chromedriver, 确保版本要匹配, 然后将 .exe 程序放在"..Python\Python36\Scripts"目录下。

6. pymongo

pip3 install pymongo

7. MongoDB Server - Download MongoDB

爬取思路

爬取思路:

模拟登录

抓取动态

保存数据

Android SDK的安装与配置

打开Android Studio, 选择"Configure->SDK Manager->Apperance&Behavior->System Settings->Android SDK", 选择对应安卓机版本的SDK,如图:

此外,还需要将SDK所在路径添加到系统环境变量中,否则报错。

Desired Capabilites 参数

分别是:platfornName, deviceName, appPackage, appActivity。前两个可通过如下命令获取, 前提是连接手机、打开USB调试:

adb devices -l

后两个参数请移步:获取appPackage和appActivity

开启安卓的" 开发者选项、USB调试 "

测试之前,确保打开 开发者选项、USB调试。开发者模式确保调试程序在手机安装辅助软件:Unlock, Appium Settings;USB调试主要是利用Appium内置驱动打开APP。此外,要保持屏幕常亮。

5. 节点ID或XPATH值获取

安卓微信节点获取,相对比较容易获取,比如获取"登录"ID值,启动Session后只需点击屏幕左侧安卓屏的登录按钮,中间就会自动定位到所在节点,最右侧还会显示该节点的所有属性。如图:

对于文本输入框,只需要点击最右侧的"send text"即可。

"是否匹配通讯录"

这里选择"否", 理由:重新登录进入微信后会自动加载本地数据,耗时较长,如果匹配通讯录好友,增加耗时,可能在TIMEOUT时间内获取不到节点,导致程序终止。我这里选择了"是", 如图:

朋友圈信息获取思路

获取当前显示的朋友圈每条状态对应的区块元素,遍历每个区块元素,再获取内部显示的用户名、正文、发布时间,代码如下:

# items存储当前页面所有发布的朋友圈信息

items = self.wait.until(

EC.presence_of_all_elements_located(

# 每个ej9节点对应一条朋友圈数据

(By.XPATH, '//*[@resource-id="com.tencent.mm:id/ej9"]/android.widget.LinearLayout')))

for item in items:

try:

# 昵称

nickname = item.find_element_by_id('com.tencent.mm:id/b5o').get_attribute('text')

# 正文

content = item.find_element_by_id('com.tencent.mm:id/ejc').get_attribute('text')

# 日期

date = item.find_element_by_id('com.tencent.mm:id/eec').get_attribute('text')

# 处理日期

date = self.processor.date(date)

data = {

'nickname': nickname,

'content': content,

'date': date,

}

日期处理

日期处理的实现方式,代码如下:

class Processor():

def date(self, datetime):

"""

格式化时间

:param date: 原始时间

:return: 处理后时间

"""

if re.match('\d+分钟前', datetime):

minute = re.match('(\d+)', datetime).group(1)

datetime = time.strftime('%Y-%m-%d', time.localtime(time.time() - float(minute) * 60))

if re.match('\d+小时前', datetime):

hour = re.match('(\d+)', datetime).group(1)

datetime = time.strftime('%Y-%m-%d', time.localtime(time.time() - float(hour) * 60 * 60))

if re.match('昨天', datetime):

datetime = time.strftime('%Y-%m-%d', time.localtime(time.time() - 24 * 60 * 60))

if re.match('\d+天前', datetime):

day = re.match('(\d+)', datetime).group(1)

datetime = time.strftime('%Y-%m-%d', time.localtime((time.time()) - float(day) * 24 * 60 * 60))

return datetime

完整代码

注意事项:

代码中所有节点都须提前通过 Appium新建Session获取(亲测同版本的微信中vivo_x7和Mi_8节点相同,其余机型未知)

建议使用高性能手机测试(MI_8|MI_9等)

运行结果

Python自动化爬取App数据!真方便呀! 基本环境配置 版本:Python3 系统:Windows 需要安装: 1.JDK - Download JDK,Appium要求用户必须配置JAVA环境, 否则启动Seesion报错。 2.Appium - Download Appium, 安装过程请自行搜索。 3.Android SDK - Download SDK 4. Selenium - 建议使用低版本的Python Selenium库,在Chrome高版本可能会报错。例如: pip3 install selenium==2.48 阅读详情

相关推荐

python爬取利用appium抓取得到APP课程数据导出到Excel进行分析,练习Python实现app抓取实例

python爬取APP爬取思路和方案选择: 用到的库: openpyxl #导出excel appium #自动化测试工具 思路一 通过抓包软件对APP进行抓包分析, 这种方式可以看到 App 在运行过程中发生的所有请求和响应。得知接口之后可以通过设置合适的请求头和各种参数来发送HTTP或者HTTPS请求接口,接口返回的数据就是想要数据了。 python爬取抓取得到APP课...

码在天涯 1827

python进程抓包

pip install PyQt4-4.11.4-cp27-cp27m-win_amd64.whl https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyqt4 本地安装https://download.lfd.uci.edu/pythonlibs/archived/cp27/PyQt4-4.11.4-cp27-cp27m-win_amd64.whl。开源的openQPA:https://gitee.com/l7dpi/openQPA。

m0_60390132的博客 630

python 工具化查询苹果送审页面iTunes Connect的应用的各种信息

引子 作为ios开发人员,你经常-每天都要被产品的同学经常问你,这个app的状态怎么样了啊?进入审核了吗?过审了吗?游戏的Bundle ID是什么?Apple ID 是什么?等等诸如此类的事,你烦不烦,烦不烦?于是,就想着去做一个工具,来爬取iTunes Connect 的数据,这样不就可以让其他的同学自己去查!good idea!

ChSaDiN的专栏 2759

python实现——windows下批量抓包

目录需求描述实现逻辑代码设计效果演示 需求描述 最近项目支撑,需要针对各类ms漏洞、webshell、k8等工具编写防御规则,我们统一把恶意工具下载到本地,在本地开一个web服务。每针对一个工具开发一条规则,就需要捕获一个数据包,而且必须是经过过滤处理的单独的数据包。希望能有一个工具简化抓包过程。 思路1:本地开启web服务,如果是开启wireshark,然后批量爬虫的话,会得到包含多个追踪流的数据包,如果借助scapy进行拆包,要处理的异常情况太多。放弃。 思路2:使用sniffer抓包。缺陷是存在漏包,

LainWith的博客 6923

STM32C8T6实战:用PID算法搞定超级电容的10W无线恒功率充电(附代码避坑)

本文详细介绍了如何使用STM32C8T6和PID算法实现超级电容的10W无线恒功率充电。通过优化硬件设计、动态调整PID参数以及三重滤波技术,解决了超级电容充电过程中的功率尖峰和效率问题。附有代码示例和调试经验,帮助开发者快速实现高效稳定的无线充电方案。

weixin_29190169的博客 405

01 Aras Innovator二次开发实战:从IOM到AML的完整交互指南

本文详细介绍了Aras Innovator二次开发实战,从IOM到AML的完整交互指南。通过JavaScript和C#代码示例,展示了如何在客户端和服务端使用IOM进行开发,并深入解析AML语言的基础语法和调试技巧。文章还提供了文档管理和BOM管理等典型场景的实战案例,帮助开发者快速掌握Aras Innovator二次开发的核心技术。

wind6的博客 650

Python调用外部EXE程序遍历窗体及控件并获取控件信息。

背景: 我工作中经常运行一个windows程序,获取并使用该程序的计算结果,但是该程序又不能满足我们的自动化要求,又无法破解其算法,怎么办?那就用Python做个批处理任务吧。关键点是如何运行外部exe、获取句柄及一些操作。 关键步骤: 1. 启动和关闭应用程序,我采用非阻塞式启动应用程序。 2. 遍历窗体。 3. 触发按钮。 4. 获取文本框内容。 环境: 1.程序使用到了Spy++ 工具。 # _*_ encoding:utf-8 _*_ import time import logging impor

qq_30076271白水的博客 8440

ADS笔记,新旧两组仿真数据进行绘图和列表对比

原理图器件参数的不同,怎么进行对比观看,操作如下。

彭辉荣的博客 3868

Python手机App数据抓取实战:抖音用户的抓取

前言 文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者: 风,又奈何 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef 环境准备 fiddler appium m...

人生苦短, 还不用Python? 9308

YOLOv11涨点改进 | NeurIPS2025最佳论文!注意力改进篇| 引入Gated Attention门控注意力模块、太牛了!直接拯救了大模型的发展,助力目标检测、图像分割、图像分类有效涨点

本文提出了一种基于门控注意力机制(GatedAttention)的YOLOv11改进方法。该模块通过在标准注意力机制中引入头部特定的sigmoid门控,有效提升了模型性能和训练稳定性。实验表明,GatedAttention能够增强模型对关键信息的聚焦能力,减少无关区域关注,提高检测精度。同时,门控机制带来的非线性和稀疏性优化了计算效率,并缓解了训练不稳定性问题。文章详细介绍了模块原理、实现代码及三种改进方案配置方法,为YOLOv11在复杂场景下的目标检测提供了有效解决方案。

Ai缝合怪、助力小伙伴高效发论文 494

T113-S3-官方SDK分区添加

本篇文章将展示如何编译T113-S3的SDK以及在sdk中添加用户自定义分区,让您能够轻松地开始在您的项目中使用T113-S3芯片。T113-S3是一款功能强大的嵌入式处理器,适用于各种应用,包括物联网、工业自动化和智能家居等。T113-S3-SDK是特别为T113-S3芯片设计的软件开发工具包(Software Development Kit)。它包含了一系列用于开发和定制嵌入式应用程序的工具、库和示例代码,方便开发者在T113-S3平台上开展软件开发工作。

flypig has a dream! 2358

python自动化爬取app_松勤软件自动化测试-如何利用Python爬取网站数据?

这样就装载进一个cookie,用urlOpener去open登录以后就可以记住信息。3.断线重连如果只是做到上面的程度,不对open进行包装的话,只要网络状况有些起伏,就直接抛出异常,退出整个程序,是个很不好的程序。这个时候,只要对异常进行处理,多试几次就行了:4.正则匹配其实正则匹配并不算是一个特别好的方法,因为它的容错性很不好,网页要完全统一。如果有稍微的不统一,就会失败。后来看到说有根据xp...

weixin_33218378的博客 218

国科大学习资料--机器学习方法与应用(叶齐祥)-期末考试题整理

国科大学习资料–机器学习方法与应用-期末考试题整理 ============================================================================================================================================================================================ =======================================

无名何许人的博客 2852

页式地址重定位模拟_Appuim+夜神模拟器爬取得到APP课程数据!谁说不能爬APP?...

一、背景介绍 随着生产力和经济社会的发展,温饱问题基本解决,人们开始追求更高层次的精神文明,开始愿意为知识和内容付费。从2016年开始,内容付费渐渐成为时尚。 罗辑思维创始人罗振宇全力打造“得到APP”就是这样一款优质的可以听音频、学通识课程、看电子书、看直播、记笔记的知识付费平台,得到汇聚罗振宇、薛兆丰、梁宁、万维钢、吴军、香帅、宁向东等各个领域的专家学者的精品课程,致力于服务所有终身学习者。 ...

weixin_39650139的博客 231

Coze工作流的代码无法安装第三方模块(依赖)怎么办?(如何解决Coze工作流代码缺少模块(依赖)的问题)

Coze工作流的代码无法安装第三方模块(依赖)怎么办?(如何解决Coze工作流代码缺少模块(依赖)的问题)

XiaoqiangClub的博客 4364

SOI LDMOS器件的Sentaurus TCAD建模与关键电学特性仿真研究

本文研究了SOI LDMOS器件的TCAD建模与电学特性仿真。通过Sentaurus TCAD平台建立了单RESURF结构的SOI LDMOS模型,详细阐述了器件结构原理和RESURF耐压机制。研究采用SDE进行几何定义和掺杂配置,在Sentaurus Device中构建了完整的物理模型体系,包括迁移率、复合和碰撞电离模型。通过系统仿真提取了器件的转移特性、输出特性和击穿特性等关键参数,分析了各参数对性能的影响规律。研究结果为功率半导体器件的仿真建模提供了规范化参考,有助于优化SOI LDMOS的性能设计。

huanghm88的专栏 134

chatgpt赋能python:模拟手机App登陆:Python实现

模拟手机App登陆,是指通过HTTP请求和模拟登陆流程,来获取App的数据和服务。这个过程中,我们需要输入正确的账号和密码,然后模拟登陆,最终获得所需的数据或服务。本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体。

boRRjxBZRf的博客 1136

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

2.2 APP数据采集

在本课程中,您将学习如何使用雷电模拟器和Python的uiautomator2模块来爬取某电影APP上的数据。

garyyu2200的博客 687

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

python爬取360手机助手APP信息

这是一个爬虫软件,用来爬取360应用市场,App软件信息,现阶段代码只能爬取下载量,如需爬取别的信息,请自行添加代码。 使用方法: 1、在D盘根目录新建.tet文件,命名为App_name,并把App名称黏贴到文件内,格式如下: 2、直接运行就好。 最近比较忙,好久没更新博客了,为什么忙呢,是因为最近被派到“App专项治理组”做App治理工作了,在专班成立初期热心网友举报量比较多,天天处理举报问...

人生苦短, 还不用Python? 964

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

提升市场调研和竞品分析效率:利用Appium实现App数据爬取

小红书是一个流行的社交电商平台,我们希望通过爬取小红书上的商品信息和用户评价等数据,来了解市场上的竞争情况和用户需求。同时,我们还可以结合其他技术和工具,如数据清洗和分析工具等,来进一步优化数据挖掘的过程和结果。通过使用Appium,我们可以模拟用户在App上的各种操作,如点击、滑动和输入等,从而获取所需的数据。而利用Appium框架,我们可以轻松地实现自动化的App数据爬取,这种方法不仅可以节省时间和人力成本,还可以提高数据的准确性和一致性。

Z_suger7的博客 1124

DAY-04

爬取豌豆荚多页app数据 import requests import re from bs4 import BeautifulSoup # 1.发送请求 def get_page(url): response = requests.get(url) return response # 2.解析数据 def parse_index(code)...

weixin_30379911的博客 95
上一篇: 程序员在工作中的编程是怎么样的,与学校里有什么不同?
下一篇: 致初学者:如何学好Python这门编程语言?
Pyxinrou
博客等级 码龄7年 6粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值