Appium的安装在前一篇文章写得比较详细,如果有需要,可以参考前一篇,下面介绍抓取APP数据的过程。

开始界面

Appium安装完成之后,打开Appium,如下图直接点击开始。

进入如下图界面,点击,Start Inspector Session

设置相关信息

进入如下界面,填写相关信息,主要有

"platformName": "Android",
"deviceName": "MI_8",
"appPackage": "com.zhihu.android",
"appActivity": ".app.ui.activity.MainActivity",
"noReset": true

platformName平台名称:填写Android或者iOS,deviceName设备名称:填写真机的设备名,可以通过adb devices -l(不是数字1,是小写l) 查看,model后面就是

appPackage:app包名,appActivity:app活动名,appPackage和appActivity获取方式:

  • a、启动待测apk
  • b、开启日志输出:adb logcat>D:/log.txt
  • c、关闭日志输出:ctrl+c
  • d、查看日志

用 ctrl+f 找Displayed:

Displayed com.zhihu.android/.app.ui.activity.LauncherActivity: +1s365ms

appPackage = com.zhihu.android

appActivity = .app.ui.activity.LauncherActivity

这样就找出了appPackage,但是这样找出来的appActivity可能不一定是我们需要的那个,可以启动待测apk到需要访问的界面,

通过命令adb shell monkey -p com.zhihu.android -v -v -v 1,就可以查看需要访问的界面的活动名

还有一个特别简单快速有效的方法:
通过cmd命令,前提是先打开手机中你要获取包名的APP

1. adb shell
2. dumpsys activity | grep mFocusedActivity

noReset设置为true,每次运行的时候就不会把APP重置,可以免去登录的麻烦步骤。

设置完成。

开始

以上设置好之后,点击Start Session就可以启动了。

但是我开始的时候一直报错:

An unknown server-side error occurred while processing the command. Original error: Error executing adbExec. Original error: 'Command 'C:\\Users\\hola\\AppData\\Local\\Android\\Sdk\\platform-tools\\adb.exe -P 5037 -s 972ad0b shell pm install -g /data/local/tmp/appium_cache/3d97225b036c28750562ef8962defee6b1af19a4.apk' exited with code 1'; Stderr: ''; Code: '1'

网上查找了各种解决方案都没有解决,最后发现是我没有打开允许usb安装的权限,因为Appium会安装一个'AppiumSettings'的程序到手机,每次都会用这个程序启动。这里提醒一下,要用真机调试的话,必须打开开发者选项,然后开启USB调试,USB安装,USB调试安全设置三项,不然都可能出现错误。

打开USB安装权限之后我就成功获取到了手机界面,激动不已,接着按下图步骤操作,

最上面红色框内各按钮功能:第一个:定位元素;第二个:拖拽测试;第三个高宽比;  第四个:后退;第五个:刷新;第六个录制;第七个:校验元素;第八个:关闭

1、我们先点击第六个按钮(图标为眼睛),开始录制,会把你后面的每一个操作都转换成代码,可以选择Java/Python等,然后直接复制代码,非常方便,为了不遗漏操作步骤,所以我们从头开始录制(不过我这里不需要录制,因为我这里获取数据不需要对app执行什么操作)。

2、选择元素功能

3、选择你想要操作的地方,我想要获取热点的标题,所以我选择了这个地方

然后就出现了最右边红框部分,框内各按钮功能:Tap是点击,Send Keys是发送输入的信息,比如填写电话号码等,Clear是清除。我们这里仅仅是想获取热点标题,所以我们不做任何操作,我们往下拉,可以找到resource-id:com.zhihu.android:id/title

同理,我们还可以点击“热度”,获取热度的resource-id:com.zhihu.android:id/metrics_text

然后我们就可以通过resource-id来获取内容啦

from appium import webdriver
import timecaps = {}
caps["platformName"] = "Android"
caps["deviceName"] = "MI_8_SE"
caps["appPackage"] = "com.zhihu.android"
caps["appActivity"] = ".app.ui.activity.MainActivity"
caps["platformVersion"] = "9"
caps["autoGrantPermissions "] = True
caps["noReset"] = Truedriver = webdriver.Remote("http://localhost:4723/wd/hub", caps)
time.sleep(6)
el1 = driver.find_elements_by_id("com.zhihu.android:id/title")
el2 = driver.find_elements_by_id("com.zhihu.android:id/metrics_text")
contents=[]
for i in range(len(el1)):print(el1[i].text, el2[i].text,len(el1))

获取元素的方式常用的有:

driver.find_element_by_xpath("//")

driver.find_element_by_id("com.zhihu.android:id/title")

如果想要获取列表多个数据:

就把find_element_by_id改为find_elements_by_id

driver.find_element_by_id("com.zhihu.android:id/title").text就可以获取text数据

或者driver.find_element_by_id("com.zhihu.android:id/title").get_attribute('text')或get_attribute('href')

如果我想要获取知乎热点里面的每一条评论呢?怎么办?前面说了,选中热点标题后,右边红框就会出现,点击Tap,就会跳转到详细界面,获取数据同上

像Selenium爬网页一样爬手机App,可见即可爬——appium 教程(二)appium实战抓取手机知乎APP的热点标题相关推荐

  1. python爬app_Python爬虫抓取手机APP的传输数据

    大多数APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,抓取超级课程表里用户发的话题. 1.抓取APP数据包 方法详细可以参考这篇博文:Fiddler如何抓取手机 ...

  2. python3 爬虫实战 :用 Appium 抓取手机 app 的 数据

    http://www.ziksp.com/%e5%ad%a6%e4%b9%a0%e8%b5%84%e6%96%99/python%e7%bc%96%e7%a8%8b/  python资料站 From: ...

  3. python3 爬虫实战 :用 Appium 抓取手机 app 微信朋友圈的数据

    From:https://blog.csdn.net/Fan_shui/article/details/81413595 本编教程从 appium 的环境配置开始,到抓取手机 app 微信朋友圈结束. ...

  4. python爬取boss直聘招聘信息_Python爬虫实战-抓取boss直聘招聘信息

    Python Python开发 Python语言 Python爬虫实战-抓取boss直聘招聘信息 实战内容:爬取boss直聘的岗位信息,存储在数据库,最后通过可视化展示出来 PS注意:很多人学Pyth ...

  5. fiddler抓取手机APP数据

    1.下载fiddler Fiddler官网下载地址:http://www.fiddler2.com/fiddl 2.安装fiddler 安装过程就是下一步下一步最后完成即可,安装好了以后需要配置一些内 ...

  6. 非常【刑】又可【拷】的fiddler抓包实战 涵盖使用教程/下载安装/抓取手机app

    Fiddler是一款非常强大的网络抓包工具,可以帮助我们分析HTTP/HTTPS协议的流量,从而深入了解网站的运行机制,发现安全风险和性能问题.下面是Fiddler工具的基础使用方法. 视频教程:非常 ...

  7. python爬虫app步骤_Python爬虫抓取手机APP的传输数据,python爬虫抓取app

    Python爬虫抓取手机APP的传输数据,python爬虫抓取app 大多数APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,抓取超级课程表里用户发的话题. 1. ...

  8. 使用Fiddler软件抓取手机某个App的API接口

    开发APP时,我们老是烦恼于没有数据,下面我将使用Fiddler软件抓取手机某个App的API接口(以"锤子阅读"App为例) 0.下载并安装Fiddler软件: https:// ...

  9. fiddler抓取手机app数据(手机开热点)

    一.准备工作 1. 下载并安装fiddler抓包工具.手机提前安装好fiddler证书,这个可以看以往的文章 二.手机配置 手机打开热点,电脑连接成功后 1.首先需要知道电脑ip地址.电脑ip地址可通 ...

  10. 四、小程序|App抓包(四)-Tcpdump抓取手机数据包分析

    小程序|App抓包(四) Tcpdump抓取手机数据包分析 一.环境需求: 1.手机需要root 2.电脑上安装SDK(建议安装android studio)也可单独安装SDk也行 下载地址 : ht ...

最新文章

  1. Servlet,过滤器,监听器,拦截器的区别
  2. bootstrap-less源码分析:容器
  3. java视频为什么这么多_为什么看java教学视频教的都是javase,两者难道语言相同吗?...
  4. 从专利数量看全球最具创新力的50家公司
  5. python哪个代码是正确的字典_Python - 字典(dict) 详解 及 代码
  6. [BZOJ1177][Apio2009]Oil
  7. JDBC连接Oracle数据库的参数配置
  8. Nexus 3.31.1 maven 私服 仓库和IntelliJ IDEA 2021.2 实战篇 linux
  9. Day 4-7 -configparser模块
  10. impdp时报错ORA-39082的原因
  11. 啤酒与尿布,咩叔原创基于图论简单到爆的实时关联性算法
  12. 服务器虚拟化的意思,服务器虚拟化存储的好处以及作用
  13. JavaScript问题01 js代码放在header和body的区别
  14. Go语言详解内存对齐
  15. 银行对公账户编码规则
  16. 2020系统架构设计师考试通过率,软件资格证书正在发生深刻历史变化
  17. kindle文件转PDF文件
  18. mybatiplus的apply_mybatis-plus入门
  19. ubuntu 安装和删除字体
  20. My Fifty-Sixth Page - 子集Ⅱ - By Nicolas

热门文章

  1. Ueditor 使用
  2. Android源码下载(包括最新8.0版本)
  3. wow模型修改器_魔兽世界改模型 wow大脚模型修改器
  4. Unix网络编程第一卷学习总结
  5. 用python做查询系统_用python制作全国身份证号验证及查询系统
  6. JAD文件各属性解释
  7. 西威变频器使用说明书_西威变频器调试说明.doc
  8. 小球运动及碰撞3D仿真模型
  9. TraceView 的使用
  10. adapter java_Java 实现适配器(Adapter)模式