python 을 사용 하여 틱 톡 app 동 영상의 인 스 턴 스 코드 를 추출 합 니 다.

python 으로 app 데 이 터 를 어떻게 얻 는 지 기록 하고 본 고 는 틱 톡 영상 app 을 기어 오 르 는 것 을 예 로 들 자.
프로 그래 밍 도구:pycharm
app 패키지 도구:mitmproxy
app 자동화 도구:appium
실행 환경:windows 10
생각:
우리 가 필요 로 하 는 도 구 를 이미 설정 했다 고 가정 하 자.
1.mitmproxy 를 사용 하여 핸드폰 app 스냅 백 에 우리 가 원 하 는 내용 을 가 져 옵 니 다.
2.appium 자동화 테스트 도 구 를 이용 하여 app 모 의 사람의 동작(미끄럼,클릭 등)을 구동 합 니 다.
3.1 과 2 를 결합 하여 자동화 파충류 의 효과 달성
1.mitmproxy/mitmdump 스냅 백
mitmproxy 가 설치 되 어 있 고 핸드폰 과 PC 가 같은 랜 에 있 는 지 확인 하 는 동시에 mitmproxy 의 CA 인증 서 를 설정 하 였 습 니 다.인터넷 에 관련 된 설정 튜 토리 얼 이 많 습 니 다.여 기 는 생략 하 겠 습 니 다.
mitmproxy 는 windows 시스템 을 지원 하지 않 기 때문에 구성 요소 중 하나 인 mitmdump 를 사용 합 니 다.mitmproxy 명령 행 인터페이스 입 니 다.Python 스 크 립 트 를 연결 하여 Python 으로 감청 후 처리 할 수 있 습 니 다.
mitmproxy 를 설정 한 후 콘 솔 에 mitmdump 를 입력 하고 핸드폰 에 틱 톡 app 을 켜 면 mitmdump 는 핸드폰 의 모든 요청 을 보 여 줍 니 다.다음 그림 입 니 다.

틱 톡 앱 에서 계속 아래로 내 려 갈 수 있 습 니 다.mitmdump 가 보 여 준 요청 을 보면 접두사 가 각각
http://v1-dy.ixigua.com/http://v3-dy.ixigua.com/http://v9-dy.ixigua.com/
이 세 가지 유형의 접두사 url 이 바로 우리 의 목표 인 틱 톡 영상 url 이다.
다음은 python 스 크 립 트 를 작성 하여 동 영상 을 다운로드 하려 면 mitmdump-s scripts.py(python 파일 이름)를 사용 하여 스 크 립 트 를 실행 해 야 합 니 다.

import requests
#     
path = 'D:/video/'
num = 1788
 
 
def response(flow):
 global num
 #        url     3 
 target_urls = ['http://v1-dy.ixigua.com/', 'http://v9-dy.ixigua.com/',
     'http://v3-dy.ixigua.com/']
 for url in target_urls:
  #        url
  if flow.request.url.startswith(url):
   #      
   filename = path + str(num) + '.mp4'
   #   request    url   
   # stream=True              Response.content  
   res = requests.get(flow.request.url, stream=True)
   #         
   with open(filename, 'ab') as f:
    f.write(res.content)
    f.flush()
    print(filename + '    ')
   num += 1
코드 는 비교적 거 칠 게 쓰 였 지만 기본 적 인 논 리 는 비교적 뚜렷 하 다.그러면 우 리 는 틱 톡 의 동 영상 을 다운로드 할 수 있다.그러나 이 방법 은 동 영상 을 얻 을 때 사람 이 끊임없이 틱 톡 의 다음 동 영상 을 미 끄 러 뜨 려 야 한 다 는 결함 이 있다.이때 우 리 는 강력 한 appium 자동화 테스트 도구 로 해결 할 수 있다.
2.Appium 은 핸드폰 에 대해 모 의 조작 을 한다.
appium 이 의존 하 는 환경 을 설정 한 Android 와 SDK 를 확보 하고 인터넷 에 도 많은 튜 토리 얼 이 있 습 니 다.여 기 는 말씀 드 리 지 않 겠 습 니 다.
appium 의 용법 은 매우 간단 합 니 다.먼저 appium 을 열 고 시작 화면 은 다음 과 같 습 니 다.

Start Server 버튼 을 누 르 면 appium 서 비 스 를 시작 할 수 있 습 니 다.

안 드 로 이 드 폰 을 데이터 라인 을 통 해 PC 와 연결 하 는 동시에 USB 디 버 깅 기능 을 켜 면 adb 명령(구체 적 으로 인터넷 에서 찾 을 수 있 음)을 입력 하여 연결 상황 을 테스트 할 수 있 으 며,다음 과 같은 결과 가 나 오 면 연결 성공 을 설명 합 니 다.

model 은 장치 이름 입 니 다.뒤쪽 설정 에 사용 해 야 합 니 다.다음 화살표 가 가리 키 는 단 추 를 누 르 면 설정 페이지 가 나타 납 니 다.

오른쪽 아래 에 있 는 JSON Representation 설정 에서 app 을 시작 하 는 Desired Capabilities 인 자 는 paltformName,deviceName,app Package,app Activity 입 니 다.
platformName:플랫폼 이름,일반적으로 Android 또는 iOS 입 니 다.
deviceName:장치 이름,핸드폰 의 구체 적 인 유형
앱 패키지:앱 패키지 이름
appActivity:입구 Activity 이름,보통.로 시작 합 니 다.

platformName 과 deviceName 은 쉽게 얻 을 수 있 으 며,app Package 와 app Activity 두 가 지 는 다음 과 같은 방법 으로 얻 을 수 있 습 니 다.
콘 솔 에 입력   adb logcat>D:\log.log  명령 하고 핸드폰 에서 틱 톡 app 을 켜 고 D 디스크 에서 log.log 파일 을 열 어 Displayed 키 워드 를 찾 습 니 다.

위의 그림 에서 알 수 있 듯 이 Displayed 뒤의 com.ss.android.ugc.aweme 는 app Package,.main.MainActivity 에 대응 하 는 것 은 app Activity 입 니 다.마지막 으로 우리 의 설정 결 과 는 다음 과 같 습 니 다.

{
 "platformName": "Android",
 "deviceName": "Mi_Note_3",
 "appPackage": "com.ss.android.ugc.aweme",
 "appActivity": ".main.MainActivity"
}
Start Session 을 클릭 하면 Android 핸드폰 의 틱 톡 앱 을 시작 하고 시작 페이지 에 들 어 갈 수 있 습 니 다.이 동시에 PC 에 디 버 깅 창 이 나타 납 니 다.이 창 에서 현재 핸드폰 페이지 를 미리 볼 수 있 고 핸드폰 에 대해 여러 가지 조작 을 모 의 할 수 있 습 니 다.본 고 는 중점 이 아니 기 때문에 생략 합 니 다.

아래 에서 우 리 는 python 스 크 립 트 를 사용 하여 app 를 구동 할 것 입 니 다.pycharm 에서 직접 실행 하면 됩 니 다.

from appium import webdriver
from time import sleep
 
 
class Action():
 def __init__(self):
  #      ,  Desired Capabilities  
  self.desired_caps = {
   "platformName": "Android",
   "deviceName": "Mi_Note_3",
   "appPackage": "com.ss.android.ugc.aweme",
   "appActivity": ".main.MainActivity"
  }
  #   Appium Server
  self.server = 'http://localhost:4723/wd/hub'
  #     Session
  self.driver = webdriver.Remote(self.server, self.desired_caps)
  #              
  self.start_x = 500
  self.start_y = 1500
  self.distance = 1300
 
 def comments(self):
  sleep(2)
  # app          ,       
  self.driver.tap([(500, 1200)], 500)
 
 def scroll(self):
  #     
  while True:
   #     
   self.driver.swipe(self.start_x, self.start_y, self.start_x, 
        self.start_y-self.distance)
   #       
   sleep(2)
 
 def main(self):
  self.comments()
  self.scroll()
 
 
if __name__ == '__main__':
 
 action = Action()
 action.main()
다음은 파충류 의 과정 이다.ps:가끔 반복 되 는 동 영상 을 찾 아 요.


python 을 이용 하여 틱 톡 앱 동 영상 을 추출 하 는 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 python 이 틱 톡 앱 동 영상 을 추출 하 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기