本文仅供学习交流使用,如侵立删!
企鹅 : 1033383881
环境:
win10 64位
python 3.6.1
appium 0.41
selenium 3.141.0
mitmproxy 4.0.4(中间件)
逍遥模拟器或真机
PS:需提前配置好Appium、 mitmproxy 运行环境
1.启动mitmproxy中间件
def response(flow):
url = 'https://aweme-hl.snssdk.com/aweme/v2/comment/list'
# 筛选出以上面url为开头的url
if flow.request.url.startswith(url):
# 获取评论json数据
text = flow.response.text
# 将已编码的json字符串解码为python对象
content = json.loads(text)
# 评论内容
comments = content['comments']
for comment in comments:
# 评论内容
_text = comment['text']
# 用户名
nickname = comment['user']['nickname']
# 个性签名
signature = comment['user']['signature']
脚本运行命令:
切换至脚本目录下运行脚本mitmdump -s 脚本文件
2.启动Appium服务
start /b appium -a 127.0.0.1 -p 4723 --no-reset
Appium 可安装桌面版或者命令行版本,上面命令为命令行启动
PS:多开注意端口号 冲突问题,指定不同端口号即可
3.连接设备
真 机:通过usb连接至电脑
模拟器:直接开启即可
adb devices # 查看连接设备
成功读取所有连接设备:
没有读取到连接设备可通过设备名手动连接
命令:
adb connect 设备名称 # 连接指定设备
4.评论数据刷新脚本
def slide(self):
while True:
print('定位评论按钮')
comment = self.wait.until(EC.presence_of_element_located((By.ID, 'com.ss.android.ugc.aweme:id/a3j')))
comment_num = comment.text
if '评论' in comment_num:
# 下一个视频
self.driver.keyevent(4)
time.sleep(2)
print(f'评论数量:{comment_num}')
comment_num = int(float(comment_num.replace('w', ''))) * 1000 if 'w' in comment_num else int(
int(comment_num) / 10)
if int(comment_num) < 100:
self.driver.swipe(200, 1500, 200, 500, 500)
continue
comment.click()
print('刷新评论数据')
# 判断数据是否刷新出来
if not self.wait.until(EC.presence_of_all_elements_located((By.ID, 'com.ss.android.ugc.aweme:id/a7b'))):
self.driver.keyevent(4)
continue
new_time = (datetime.datetime.now()+datetime.timedelta(minutes=20)).strftime('%Y-%m-%d %H:%M:%S')
# print(new_time)
for i in range(comment_num):
if (i + 1) % 10 == 0:
self.driver.swipe(200, 1400, 200, 1600, 1000)
time.sleep(0.5)
continue
start_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
# print(start_time)
if new_time < start_time:
print('超时退出')
break
self.driver.swipe(200, 1700, 200, 800, 500)
# 下一个视频
self.driver.keyevent(4)
time.sleep(2)
self.driver.swipe(200, 1700, 200, 500, 500)
print('*' * 25)
![](https://img.haomeiwen.com/i15846081/8c4e0ff7cc9481d3.gif)
![](https://img.haomeiwen.com/i15846081/be87df3ace266c15.gif)
PS:此文只是提供思路,具体很多细节没有详细介绍比如(Appium环境配置,mitmproxy抓包脚本,模拟器代理配置等等)后续会陆续写单独的教程
网友评论