抖音短视频数据抓取实战系列(十)——获取抖音dom元素属性
项目目录
1、抖音短视频数据抓取实战系列(〇)——前言
2、抖音短视频数据抓取实战系列(一)——模拟器的选择与设置
3、抖音短视频数据抓取实战系列(二)——Fiddler安装配置以及模拟器监测环境配置
4、抖音短视频数据抓取实战系列(三)——Fiddler抓取抖音用户详细信息数据
5、抖音短视频数据抓取实战系列(四)——Java解析Json文件数据并存库
6、抖音短视频数据抓取实战系列(五)——Mitmproxy的安装以及模拟器Mitmproxy证书安装
7、抖音短视频数据抓取实战系列(六)——Mitmproxy+python编写监测程序
8、抖音短视频数据抓取实战系列(七)——python连接MySQL数据库
9、抖音短视频数据抓取实战系列(八)——Mitmproxy抓取用户详细信息并入库
10、抖音短视频数据抓取实战系列(九)——自动化Appium的环境与参数配置
11、抖音短视频数据抓取实战系列(十)——获取抖音dom元素属性
12、抖音短视频数据抓取实战系列(十一)——Appium与Mitmproxy联合-自动取存抖音用户信息
13、抖音短视频数据抓取实战系列(十二)——抓取实战BUG总集
1、首先我们分析抖音自动获取用户信息过程为,自动上划来到一个新的用户视频->自动左滑来到用户信息页->点击<退出一次用户抓取成功,如此往复循环。博主在上网查阅资料的时候得知,appnium对app自动化是通过dom描述进行定位的,接下来我们来获取抖音的dom元素属性。
2、我们这里通过安装sdk使用下载的tools里的monitor.bat进行获取,详细步骤如下,双击monitor.bat,选中我们需要获取属性的dom元素,这样我们就可以在右侧看到元素详细属性,这里我们使用它的id。
3、完成自动化脚本,加入自动化运行程序,详细代码如下:
from appium import webdriver
#WebDriverWait用来加入时间判断,有时候控件元素需要过一段时间才会出现
from selenium.webdriver.support.ui import WebDriverWait
import time
num=1
#配置信息
option={
"platformName": "android",
"platformVersion": "5.1.0",
"deviceName": "emulator-5554",
#自动化测试包名
"appPackage": "com.ss.android.ugc.aweme",
#自动化测试Activity
"appActivity": "com.ss.android.ugc.aweme.splash.SplashActivity",
#"appActivity": "com.ss.android.ugc.aweme.main.MainActivity",
#再次启动不需要再次安装
"noReset": True,
#unicode键盘 我们可以输入中文
"unicodekeyboard": True,
#操作之后还原回原先的输入法
"resetkeyboard": True
}
#其中的4723就是appium服务启动时的端口号
driver = webdriver.Remote("http://localhost:4723/wd/hub",option)
#得到窗口大小
def get_size():
x=driver.get_window_size()['width']
y=driver.get_window_size()['height']
return x, y
def getuser():
global num
size = get_size()
time.sleep(1)
try:#上划
# 定义滑动
x1 = int(size[0] * 0.5)
x2 = int(size[0] * 0.7)
y1 = int(size[1] * 0.9)
y2 = int(size[1] * 0.2)
# 模拟滑动
time.sleep(1)
driver.swipe(x1, y1, x2, y2)
print("**第{0}次上划**".format(num))
except:
pass
time.sleep(1)
try:#左滑
# 定义滑动
x1 = int(size[0] * 0.9)
x2 = int(size[0] * 0.3)
y1 = int(size[1] * 0.5)
y2 = int(size[1] * 0.5)
# 模拟滑动
time.sleep(1)
driver.swipe(x1, y1, x2, y2)
print("**第{0}次左滑**".format(num))
except:
pass
# 点进去具体界面
time.sleep(1)
try:
if WebDriverWait(driver, 5).until(lambda x: x.find_element_by_id('com.ss.android.ugc.aweme:id/l6')):
# 进入用户信息界面
print("**抓取第{0}个用户数据**".format(num))
time.sleep(1)
driver.find_element_by_id('com.ss.android.ugc.aweme:id/l6').click() # 返回
# driver.find_element_by_id('com.ss.android.ugc.aweme:id/bgg').click()#头像
except:
pass
time.sleep(10)#延迟十秒运行,主要是博主这边比较卡
for num in range(1,1000):#设置执行测试
print("————开始执行第{0}次".format(num))
getuser()
print("第{0}次执行完成————".format(num))
4、执行自动化脚本,注意开启Appium服务器和Mitmproxy监测程序,如图成功。第三次被博主终止了。
5、自动化测试成功,接下来就是联合Mitmproxy,完成简易的自动化抓取抖音用户信息操作了。
项目目录
1、抖音短视频数据抓取实战系列(〇)——前言
2、抖音短视频数据抓取实战系列(一)——模拟器的选择与设置
3、抖音短视频数据抓取实战系列(二)——Fiddler安装配置以及模拟器监测环境配置
4、抖音短视频数据抓取实战系列(三)——Fiddler抓取抖音用户详细信息数据
5、抖音短视频数据抓取实战系列(四)——Java解析Json文件数据并存库
6、抖音短视频数据抓取实战系列(五)——Mitmproxy的安装以及模拟器Mitmproxy证书安装
7、抖音短视频数据抓取实战系列(六)——Mitmproxy+python编写监测程序
8、抖音短视频数据抓取实战系列(七)——python连接MySQL数据库
9、抖音短视频数据抓取实战系列(八)——Mitmproxy抓取用户详细信息并入库
10、抖音短视频数据抓取实战系列(九)——自动化Appium的环境与参数配置
11、抖音短视频数据抓取实战系列(十)——获取抖音dom元素属性
12、抖音短视频数据抓取实战系列(十一)——Appium与Mitmproxy联合-自动取存抖音用户信息
13、抖音短视频数据抓取实战系列(十二)——抓取实战BUG总集