반응형
파이썬을 이용해 플레이스토어와 원스토어에 배포되어있는 앱의 버전을 조회하는 코드입니다.
플레이스토어 앱 버전 조회
글 작성일 기준으로 정상 동작하는 코드입니다.
플레이스토어 내의 HTML 구조 변경에 따라 동작하지 않을 수 있습니다.
# Selenium 크롤링
# pip install selenium
from selenium import webdriver
from selenium.webdriver.common.service import Service
from selenium.webdriver.common.by import By
# 최신 크롬드라이버 자동로드
# pip install webdriver-manager
from webdriver_manager.chrome import ChromeDriverManager
def get_version_play(app_url):
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get(app_url)
driver.find_element(By.CSS_SELECTOR, '[jsaction="JIbuQc:trigger.hdtuG"]').click()
#앱 상세정보가 뜨는 딜레이가 있어 sleep으로 지연처리
sleep(3)
elements = driver.find_elements(By.CSS_SELECTOR, '.G1zzid .sMUprd .reAt0')
if len(elements) > 0:
print(elements[0].text)
return elements[0].text
print(get_version_play(f'https://play.google.com/store/apps/details?id={패키지명}'))
# 실행결과 : 4.2.3
원스토어 앱 버전 조회
글 작성일 기준으로 정상 동작하는 코드입니다.
원스토어 내의 API 변경에 따라 동작하지 않을 수 있습니다.
def get_version_one(app_url):
html = requests.get(app_url)
data = html.json()
'''
data 구조
{
"result": {
"code": "000",
"desc": "성공"
},
"prodId": "상품ID",
"verNm": "4.2.3",
"verCd": "40203",
"longVerCd": "40203",
"title": "앱이름",
"topMenuId": "",
"topMenuNm": "앱",
"menuId": "",
"menuNm": "",
"sellerNm": "",
"game": false
}
'''
return data['verCd']
print(get_version_one(f'https://openapi.onestore.co.kr/api/devcenter/getAppVersion/v1?pkgNm={패키지명}')
# 실행결과 : 40203
반응형
'DEV > Python' 카테고리의 다른 글
pywintypes.error : (5, 'OpenClipboard', '액세스가 거부되었습니다.') 해결 방법 (0) | 2024.07.15 |
---|---|
[Tkinter] 윈도우 최상위 창으로 만들기 (0) | 2024.04.25 |
[Python] FTPlib (2) | 2018.08.31 |