안녕하세요
예전부터 쭈욱 해왔던 셀레니엄 메크로만들기를 소개해드리겠습니다.
일단은 설명부터 해드리겠습니다.
PYTHON의 언어에 지원되는 모듈입니다.
코드를 실행할 경우에 자신이 원하는 사이트로 접속해서 로그인 스스로 하고
여러가지 것들을 자동으로 해 줄 수 있는 자동기능이 있습니다.
잘 사용하셨으면 좋겠습니다.
사용분야는 많습니다.
메크로의 분야에서 쓰이면 좋습니다.
주의. chromedriver 나 opera, firefox 등의 인터넷 브라우저를 열수있는 파일입니다.
꼭 설치를 하셔야 합니다.
만약에 exception 발생시 뒤에 Chrome version XX
나온다면 크롬->설정-> 크롬정보에서 버전 확인해서 다운로드 하시면 됩니다.
크롬드라이브는 구글에서 크롬드라이브 검색하면 잘 나옵니다.
from selenium import webdriver
driver = webdriver.Chrome('chromedriver') # chrome
url = 'https://www.naver.com'
driver.get(url) # open url
# naver login click
driver.find_element_by_class_name('link_login').click()
driver.find_element_by_class_name('int').send_keys('myname')
driver.find_element_by_name('pw').send_keys('9512')
driver.find_element_by_class_name('btn_global').click()
위에서 조금씩 설명해드리겠습니다.
webdriver 를 가져오겠다 입니다.
driver 라는 변수에 Chrome을 집어넣었습니다.
이 라인이 실행이 되시면은 Chrome 브라우저를 실행을 합니다.
url 이라는 변수에 네이버 url을 집어 넣었습니다.
driver.get(url) 을 통해서 브라우저는 네이버 사이트로 이동을 하겠됩니다.
이제는 정말 흥미로운 라인입니다.
driver.find_element_by_class_name('link_login').click() 은
앞에서 부터 driver 라는 변수의 옵션을 사용하겠는데
찾아라 요소,속성을 클래스이름은 link_login 이라는것을
한국어로 잘 번역하면은
드라이버로 link_login이라는 클래스이름을 가진 속성을 찾아서, 클릭해라
였습니다.
그 밑에 줄을 설명 하겠습니다.
driver.find_element_by_class_name('int').send_keys('myname')
드라이버로 int라는 클래스이름을 가진 속성을 찾아서, watch라고 써라
그 밑에 줄을 설명 하겠습니다.
driver.find_element_by_name('pw').send_keys('9512')
드라이버로 pw라는 이름을 가진 속성을 찾아서, 9512라고 써라
그 밑에 줄을 설명 하겠습니다.
driver.find_element_by_class_name('btn_global').click()
드라이버로 pbtn_global라는 클래스이름을 가진 속성을 찾아서, 클릭해라
이렇게 마무리 되는것입니다.
그대로 복사를 하셔서 이용을 하신다면은
작동은 되시지만 로그인은 안되신다는것입니다.
이런식으로 잘 짜시면은 조금더 복잡하고 어렵고 난해한 기능을
자신이 직접 로그인하고 복잡한 일을 안하고 난해한 일을 안하겠죠
셀레니엄을 이용한 장점 :
한번 만들어두면 유용하게 사용이 가능하다
한번 클릭으로 자신은 잠시 쉴 수 있습니다.
셀레니엄을 이용한 단점:
메크로나 자동화를 만드는 과정이 아주 쉽지만은 않다.
이미 많은 자동화를 통해서 웹에서 이용할 경우에 대기업이나 중기업정도에
자동으로 글을 쓰거나 자동으로 무언가 해야 하는 일을 가려낸다.
'python' 카테고리의 다른 글
[Python]파이썬 코드의 구조 (0) | 2020.09.18 |
---|---|
[Python] 파이썬 딕셔너리 (0) | 2020.09.13 |
[Python] 파이썬 튜플(리스트) (0) | 2020.08.21 |
[python] 파이썬 리스트 강좌 (0) | 2020.08.20 |
[파이썬 자료형] 문자열 다루기 강좌 (0) | 2020.08.12 |