APK 자동 다운 프로그래밍 요청이 종종 들어온다.
기록의 위해 소스와 절차를 남긴다.
순서
>파이썬과 셀레니움을 다운로드한다.
>API 생성하여 다운받을 패키지 List를 확보한다.
>Web Driver 설치한다 (ex : 크롬 드라이버)
>소스 개발
>실행 프로그램 생성
준비과정
STEP1~5 까지 기본 세팅과 파트별 실행방법을 상세하게 기록해두었으니 참고하면 좋다.
STEP1.
파이썬 설치
[파이썬 시작하기 #1] 설치 및 환경설정
enjoyk.tistory.com/19?category=903810
STEP2.
개발 툴 설정
[파이썬 시작하기 #2] visual studio 개발 툴 선정, 설치, 개발환경 구축 (간단)
enjoyk.tistory.com/20?category=903810
STEP3.
구글 드라이버 셀레니움 라이브러리 설치 및 사용
[파이썬 시작하기 #3] 셀레니움 라이브러리 설치 및 사용법 예제
enjoyk.tistory.com/21?category=903810
STEP4.
API 통신 예제
[파이썬 시작하기 #4] API 통신하기 requests http
enjoyk.tistory.com/22?category=903810
STEP5.
실행 파일 생산 예제
[파이썬 시작하기 #5] 실행 파일 생성 만들기
enjoyk.tistory.com/23?category=903810
소스 파일
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import os
import time
import requests
import json
def main():
response = requests.get("API URL 입력")
apklist = (json.loads(response.text)['data']['list'])
# example apklist = [ 'com.android.vending', 'com.google.android.apps.docs.editors.docs', 'com.google.android.apps.youtube.music', 'com.google.android.videos' ]
apk_download (apklist)
def apk_download(apklist):
# download 와 profile path 지정
download_dir = os.path.join(os.getcwd(), 'download')
profile_dir = os.path.join(os.getcwd(), 'profile')
option = Options()
option.add_argument("disable-infobars")
option.add_argument("disable-extensions")
#option.add_argument("start-maximized")
option.add_argument('disable-gpu')
#option.add_argument('headless')
option.add_argument("user-data-dir="+profile_dir)
option.add_experimental_option("prefs", {
"download.default_directory": download_dir,
"download.prompt_for_download": False,
"download.directory_upgrade": True,
"safebrowsing.enabled": True
})
# webdriver 얻어옴
browser = webdriver.Chrome('/Users/User/python/chromedriver',options=option)
# apk list 에서 apk download 시도함
for apk in apklist:
print(apk['pakage_name'])
apk_mirror_url = 'https://m.apkpure.com/kr/google-play-store/{}/download?from=details'.format(apk['pakage_name'])
print ('Download apk', apk['pakage_name'])
browser.get(apk_mirror_url)
time.sleep(10)
# chrome에서 다운로드 완료 할때 까지 충분한 시간을 기다림
time.sleep(30)
# chrome 종료
browser.quit()
print ('Finish')
if __name__ == "__main__":
main()
이슈사항 :
1) /users/users/python/chromdriver 위치에 크롬 드라이버 위치해있어야함
2) apk downloader 은 5회 로 제한이 되어있음. -> apkpure.com 에서 자동다운 처리 필요.
3) STEP5 실행 파일 생성 후 공유했을 시 크롬드라이버가 다운받은 PC와 같은 경로에 존재하지 않을시 실행되지 않을 수 있음 -> 크롬드라이버 경로와 파일 함께 공유
참조 자료 : 파이썬으로 Apk Download 자동화: Selenium기반의 Apk 크롤러 (tistory.com)
'개발 > python' 카테고리의 다른 글
[파이썬 시작하기 #5] 실행 파일 생성 만들기 (0) | 2020.12.15 |
---|---|
[파이썬 시작하기 #4] API 통신하기 requests http (0) | 2020.12.15 |
[파이썬 시작하기 #3] 셀레니움 라이브러리 설치 및 사용법 예제 (0) | 2020.12.15 |
[파이썬 시작하기 #2] visual studio 개발 툴 선정, 설치, 개발환경 구축 (간단) (0) | 2020.12.15 |
[파이썬 시작하기 #1] 설치 및 환경설정 (간단) (0) | 2020.12.15 |
댓글