python 사용하여 프로그램 상세페이지를 새로고침하는 코드입니다.
다만, 아임웹으로 넘어가는 경우 해당 자동화 매크로봇은 사용할 필요가 없을 수 있습니다.
왜 만들었나요?
우피의 경우 새로고침을 해야 수정된 내용이 적용이 되어요.
수많은 상세 페이지를 새로고침 하는 경우, 소요되는 시간이 많기에 만들었어요.
초기세팅
visual studio 다운로드 https://code.visualstudio.com
python 3 다운로드 https://www.python.org
→ 환경변수
https://anys4udoc.readthedocs.io/en/latest/attach/zz-python-install.html
webdriver chrome 다운로드 https://developer.chrome.com/docs/chromedriver/downloads
→ 경로지정 혹은 해당 파일에 붙여넣기
1. 파일 생성
2. {}.py 생성
3. 가상환경 세팅 https://homubee.tistory.com/38 - venv
https://liebe97.tistory.com/10
pip install gspread
pip install selenium
HTML
복사
구글 스프레드 시트와 파이썬 연동은 아래 블로그를 참고해주세요.
https://arc-viewpoint.tistory.com/entry/VScode와-구글-스프레드-시트-연동하기-2
https://yurimkoo.github.io/python/2019/07/20/link-with-googlesheets-for-Python.html
최종 완성본 코드
import gspread
from google.oauth2.service_account import Credentials
from gspread.exceptions import SpreadsheetNotFound
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 최종본
# 절대 경로로 JSON 키 파일 경로 설정
json_key_file_path = '/Users/mad-book/Desktop/testCode/click-event-428509-a3ef8ccc1374.json'
# 필요한 권한 범위 설정
scopes = [
"https://www.googleapis.com/auth/spreadsheets", # 기본 범위
"https://www.googleapis.com/auth/drive" # 추가적인 범위 (예시)
]
# 서비스 계정 인증
credentials = Credentials.from_service_account_file(json_key_file_path, scopes=scopes)
gc = gspread.authorize(credentials)
# 도메인 리스트
domains = [
]
def main():
# Chrome WebDriver를 시작합니다.
browser = webdriver.Chrome()
try:
# Google Sheets 열기
spreadsheet = gc.open('프로그램 url 제작하기')
worksheet = spreadsheet.worksheet('새로고침용 합격/팀공지페이지url')
# C 열의 데이터 2번째부터 65번째까지 가져오기
c_column_range = worksheet.range('C64:C129')
c_column_data = [cell.value for cell in c_column_range]
# 가져온 데이터를 domains 리스트에 추가
for data in c_column_data:
domains.append(data)
# 각 도메인에 접근합니다.
for domain in domains:
browser.get(domain)
print(f"Accessing: {domain}")
try:
# 페이지가 완전히 로드될 때까지 기다립니다.
WebDriverWait(browser, 10).until(
EC.presence_of_element_located((By.TAG_NAME, "body"))
)
print(f"Successfully accessed: {domain}")
except Exception as e:
print(f"Error accessing {domain}: {e}")
# 도메인별 작업 후 잠시 대기
time.sleep(2)
finally:
# 브라우저를 닫습니다.
browser.quit()
if __name__ == "__main__":
main()
def main():
# Chrome WebDriver를 시작합니다.
browser = webdriver.Chrome()
try:
for domain in domains:
# 각 도메인에 접근합니다.
browser.get(domain)
print(f"Accessing: {domain}")
# 페이지가 완전히 로드될 때까지 기다립니다 (예: 특정 요소가 나타날 때까지).
try:
WebDriverWait(browser, 10).until(
EC.presence_of_element_located((By.TAG_NAME, "body"))
)
print(f"Successfully accessed: {domain}")
except Exception as e:
print(f"Error accessing {domain}: {e}")
# 도메인별 작업 후 잠시 대기
time.sleep(2)
finally:
# 브라우저를 닫습니다.
browser.quit()
if __name__ == "__main__":
main()
Python
복사