이 프로그램은 두 부분으로 구성되어 있습니다.
- 초기 페이지부터 내가 원하는 페이지까지 xpath를 이용하여 이동하고, 최종 웹사이트의 데이터와 내가 가진 txt 데이터의 내용을 비교하여 조건을 만족하는 것만 list에 저장한다.
- 저장된 list의 내용을 이용하여 outlook으로 메일을 전송한다.
- txt 파일이어야 합니다.
- 내용은 name, date로 구성되어있고 엔터(Enter)로 구분합니다.
- name은 사이트 기준으로 입력해야 하고, date는 공백없이 사이트 기준으로 입력해야 합니다.
- Python 3.6과 chromedriver 설치
- python 3.6
https://www.python.org/downloads/windows/
상위 버전일 경우 생기는 오류가 아직 해결되지 않아 3.6 사용을 권장
- chromedriver
https://sites.google.com/a/chromium.org/chromedriver/downloads
위 링크에서 Latest Release 옆 파일을 선택해 OS 별로 알맞은 zip 파일을 압축 풀기
- cmd에서
python get-pip.py
- 코드가 있는 위치에서
pip install selenium bs4 pywin32
- 코드에서 본인에 맞게 수정
- chromedrive 설치 경로 확인 : 속성창에서 확인한 경우 전부
- id, password 변경 : 사이트에 따라 'USER','PASSWORD'라는 단어가 아닐 수도 있다(html 확인)
# 사이트 열기
driver = webdriver.Chrome('설치경로/chromedriver', chrome_options=options)
driver.get('원하는 웹사이트')
time.sleep(10) # 화면이 뜨기 위한 대기시간
# 로그인
driver.find_element_by_name('USER').send_keys('아이디')
driver.find_element_by_name('PASSWORD').send_keys('패스워드')
driver.find_element_by_xpath('//*[@id="IMAGE1"]').click() # 로그인버튼 클릭
time.sleep(20) # 화면이 뜨기 위한 대기시간
- filelist 경로 확인 : 확장자까지 입력
file = open('설치경로', 'r', encoding='ANSI')
file = open('설치경로', 'w')
- 메일 수신자 변경 : 본인 outlook 주소 가능
# 보내는 사람은 현재 pc의 outlook에 로그인된 사람
if len(needsend_index)!=0:
outlook = win32com.client.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
mail.To = '메일 주소(다인일 경우 ;로 구분)'
mail.CC = '참조 주소'
mail.Subject = '메일 제목'
특정 사이트에서만 테스트했기 때문에 다른 사이트에 적용할 경우 전반적인 수정이 필요할 수 있습니다.
- PyCharm에 라이브러리 추가하는 법
- 사이트에 로그인하기
- 태그의 트리 구조
http://www.hanbit.co.kr/media/channel/view.html?cms_code=CMS2068924870
- a href 가져오기
- outlook 이용하기
- outlook에 첨부파일 추가하기