관리 메뉴

IT.FARMER

selenium 웹크롤링 본문

python

selenium 웹크롤링

아이티.파머 2019. 6. 21. 15:23
반응형

 

 

 

 

 

 

 

selenium 웹크롤링

1. selenium 을 활용한 웹크롤링 방법 예제

def login(userId, user_password): 

    """ 
        페이지 로그인  
    :param userId:  
    :param user_password:  
    :return:  
    """ 

    oauth_login_url = 'https://nid.naver.com/nidlogin.login?mode=form&url=https%3A%2F%2Fwww.naver.com' 
    # 페이지 접속 
    _driver.get(oauth_login_url) 

    # Element Find 
    userIdElem = _driver.find_element_by_id("id") 
    userPasswordElem = _driver.find_element_by_id("pw") 
    # Value Setting 
    userIdElem.send_keys(userId) 
    userPasswordElem.send_keys(user_password) 

    # page submit 
    form = _driver.find_element_by_id('frmNIDLogin') 
    form.submit() 

 


2. webdriver 자주사용하는 메소드 

2.1. web element의 id 값으로 찾기 

 # id_key webelement를 얻어온다. 
 find_element_by_id("id_key") 

 

2.2  input box 의 value 값 가져오기 

# input box 의 value 값을 가져온다. 
find_element_by_id("id_input_box_key").get_attribute("value") 
find_element_by_css_selector 
find_element_by_tag_name 
find_element_by_xpath 

2.3 select box 선택 후 value값 가져오기 

#Selectbox 선택 하기 
select = Select(_driver.find_element_by_xpath('x_path_key')) 
select.select_by_value('data')  # <- data option 선택 

 

2.4 check box, radio button 컨트롤 하기

#checkbox / radio button 은 click event 로 처리 한다. 
find_element_by_id("checkbox_key").click() 
find_element_by_id("radio_button_key").click() 

   
3. 크롬 드라이버 옵션 설정

  def create_chrome_option(): 
        """ 
            크롬 드라이버 옵션 설정 
        """ 

        # 파일 다운로드위치 지정 
        download_folfer = "C:\\tmp"; 

        options = Options() 
        options.add_argument("--disable-notifications") 

        options.add_argument('--verbose') 
        options.add_experimental_option("prefs", { 
            "download.default_directory": download_folfer, 
            "download.prompt_for_download": False, 
            "download.directory_upgrade": True, 
            "safebrowsing_for_trusted_sources_enabled": False, 
            "safebrowsing.enabled": False 
        }) 
        # options.add_argument("start-maximized")  # open Browser in maximized mode 
        options.add_argument("disable-infobars")  # disabling infobars 
        options.add_argument("--disable-extensions")  # disabling extensions 
        options.add_argument("--disable-gpu")  # applicable to windows os only 
        options.add_argument("--no-sandbox")  # Bypass OS security model 
        options.add_argument('--disable-software-rasterizer') 
        options.add_argument("--disable-extensions")  # disabling extensions 
        options.add_argument("--disable-dev-shm-usage")  # overcome limited resource problems 

        # 브라우저 백그라운드 모드 
        options.add_argument('--headless') 

        # 웹드라이버가 실제 웹브라우저인것 처럼 속이기 
        options.add_argument("--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.117 Safari/537.36") 

        return options

  
    
  

반응형

'python' 카테고리의 다른 글

ImportError: libSM.so.6: cannot open shared object file: No such file or directory  (0) 2021.07.07
selenuim 과 requests 비교  (0) 2019.06.25
python datetime 사용방법  (0) 2019.06.21
python 기본 함수 time  (0) 2019.06.21
python random 함수  (0) 2019.06.21