像Selenium爬网页一样爬手机App,可见即可爬——appium 教程(二)appium实战抓取手机知乎APP的热点标题
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的热点标题相关推荐
- python爬app_Python爬虫抓取手机APP的传输数据
大多数APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,抓取超级课程表里用户发的话题. 1.抓取APP数据包 方法详细可以参考这篇博文:Fiddler如何抓取手机 ...
- 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: ...
- python3 爬虫实战 :用 Appium 抓取手机 app 微信朋友圈的数据
From:https://blog.csdn.net/Fan_shui/article/details/81413595 本编教程从 appium 的环境配置开始,到抓取手机 app 微信朋友圈结束. ...
- python爬取boss直聘招聘信息_Python爬虫实战-抓取boss直聘招聘信息
Python Python开发 Python语言 Python爬虫实战-抓取boss直聘招聘信息 实战内容:爬取boss直聘的岗位信息,存储在数据库,最后通过可视化展示出来 PS注意:很多人学Pyth ...
- fiddler抓取手机APP数据
1.下载fiddler Fiddler官网下载地址:http://www.fiddler2.com/fiddl 2.安装fiddler 安装过程就是下一步下一步最后完成即可,安装好了以后需要配置一些内 ...
- 非常【刑】又可【拷】的fiddler抓包实战 涵盖使用教程/下载安装/抓取手机app
Fiddler是一款非常强大的网络抓包工具,可以帮助我们分析HTTP/HTTPS协议的流量,从而深入了解网站的运行机制,发现安全风险和性能问题.下面是Fiddler工具的基础使用方法. 视频教程:非常 ...
- python爬虫app步骤_Python爬虫抓取手机APP的传输数据,python爬虫抓取app
Python爬虫抓取手机APP的传输数据,python爬虫抓取app 大多数APP里面返回的是json格式数据,或者一堆加密过的数据 .这里以超级课程表APP为例,抓取超级课程表里用户发的话题. 1. ...
- 使用Fiddler软件抓取手机某个App的API接口
开发APP时,我们老是烦恼于没有数据,下面我将使用Fiddler软件抓取手机某个App的API接口(以"锤子阅读"App为例) 0.下载并安装Fiddler软件: https:// ...
- fiddler抓取手机app数据(手机开热点)
一.准备工作 1. 下载并安装fiddler抓包工具.手机提前安装好fiddler证书,这个可以看以往的文章 二.手机配置 手机打开热点,电脑连接成功后 1.首先需要知道电脑ip地址.电脑ip地址可通 ...
- 四、小程序|App抓包(四)-Tcpdump抓取手机数据包分析
小程序|App抓包(四) Tcpdump抓取手机数据包分析 一.环境需求: 1.手机需要root 2.电脑上安装SDK(建议安装android studio)也可单独安装SDk也行 下载地址 : ht ...
最新文章
- Servlet,过滤器,监听器,拦截器的区别
- bootstrap-less源码分析:容器
- java视频为什么这么多_为什么看java教学视频教的都是javase,两者难道语言相同吗?...
- 从专利数量看全球最具创新力的50家公司
- python哪个代码是正确的字典_Python - 字典(dict) 详解 及 代码
- [BZOJ1177][Apio2009]Oil
- JDBC连接Oracle数据库的参数配置
- Nexus 3.31.1 maven 私服 仓库和IntelliJ IDEA 2021.2 实战篇 linux
- Day 4-7 -configparser模块
- impdp时报错ORA-39082的原因
- 啤酒与尿布,咩叔原创基于图论简单到爆的实时关联性算法
- 服务器虚拟化的意思,服务器虚拟化存储的好处以及作用
- JavaScript问题01 js代码放在header和body的区别
- Go语言详解内存对齐
- 银行对公账户编码规则
- 2020系统架构设计师考试通过率,软件资格证书正在发生深刻历史变化
- kindle文件转PDF文件
- mybatiplus的apply_mybatis-plus入门
- ubuntu 安装和删除字体
- My Fifty-Sixth Page - 子集Ⅱ - By Nicolas