728x90
파이썬 셀레니움을 이용할 때 유용한 명령어들을 모아봤다. 이 명령어들을 이용하면 웬만한 것들은 다 만들수 있다. 다만 xpath, class name 등의 웹 구조에 대한 기초적인 지식이 필요하다.
1. 셀레니움 초기 실행
- import하기
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.common.exceptions import NoSuchElementException
import time
import random
- 셀레니움 옵션 추가(핸드폰 모드로 크롤링 할 때)
options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')
options.add_argument("--user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5376e Safari/8536.25")
options.add_argument("--start-maximized")
driver = webdriver.Chrome('chromedriver.exe', options=options)
- 드라이버 구동(크롬 웹 드라이버가 같은 폴더에 있을 경우, 다른 폴더에 있으면 주소 입력)
driver = webdriver.Chrome('chromedriver.exe')
2. 크롤링
- 원하는 사이트 접근
driver.get('접속을 원하는 사이트 url')
- 오류를 바로 내지않고 잠시 대기하기
driver.implicitly_wait(10)
- 요소를 찾고 마우스 왼쪽클릭(여기서는 태그네임)
btn = driver.find_elements_by_tag_name('태그 네임')
btn.click()
- 텍스트 입력 창에 키 전송(클레스 네임으로 찾고 글 입력 후 엔터 입력)
text = driver.find_elements_by_class_name('찾고자 하는 요소')
text.send_keys('타이핑을 원하는 글')
text.send_keys(Keys.ENTER)
- 새탭 열기(원하는 클레스네임 --> 클릭하여 새탭 열기 --> 새탭으로 전환)
target = driver.find_elements_by_class_name('찾는 클레스 네임')
target.send_keys(Keys.CONTROL +"\n")
driver.switch_to.window(driver.window_handles[1])
- 현재 탭 닫고 원래 탭으로 돌아오기
driver.close()
driver.switch_to.window(driver.window_handles[0])
- 현재창 새로고침
driver.refresh()
- 크롤링 오류시 재시도 하기(타겟을 찾아 클릭 --> 타겟이 없을 시 print 후 새로고침 무한반복)
from selenium.common.exceptions import NoSuchElementException
#반드시 오류명을 호출해주어야 함
while True:
try :
target = driver.find_element_by_link_text('링크 명')
target.click()
break
except NoSuchElementException as n:
print('링크를 찾을수 없습니다. 재시도합니다.')
driver.refresh()
- 크롤링 속도를 램던으로 조절하고 싶을 때(3초~30초, 로봇으로 인식되고 싶지 않을때 유용)
time.sleep(random.randrange(3,30))
3. 셀레니움 종료
driver.quit()
4. 인스타 좋아요 프로그램 만들기
셀레니움을 활용하면 인스타에서 좋아요를 자동으로 눌러주는 프로그램을 만들 수 있다. 아래 글을 참고 바란다.
728x90