美文网首页
抖音 数据自动化采集(多开)

抖音 数据自动化采集(多开)

作者: 拉灯的小手 | 来源:发表于2020-02-18 22:51 被阅读0次

本文仅供学习交流使用,如侵立删!
企鹅 : 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)

三开 四开

PS:此文只是提供思路,具体很多细节没有详细介绍比如(Appium环境配置,mitmproxy抓包脚本,模拟器代理配置等等)后续会陆续写单独的教程

相关文章

网友评论

      本文标题:抖音 数据自动化采集(多开)

      本文链接:https://www.haomeiwen.com/subject/bmtofhtx.html