python 파충류selenium 모듈 상세

selenium 모듈


selenium 기본 개념


selenium 이점
  • 사이트에서 동적으로 불러오는 데이터를 간편하게 얻을 수 있다
  • 시뮬레이션 로그인을 편리하게 실현한다
  • selenium 사용 절차:
    1. 환경 설치:pip install selenium2. 브라우저 드라이버 다운로드(구글 브라우저)
    3. 브라우저 객체 실례화

    기본 사용


    코드
    
    from selenium import webdriver
    from lxml import etree
    from time import sleep
    
    if __name__ == '__main__':
    
     bro = webdriver.Chrome(r"E:\google\Chrome\Application\chromedriver.exe")
     bro.get(url='http://scxk.nmpa.gov.cn:81/xk/')
    
     page_text = bro.page_source
     tree = etree.HTML(page_text)
     li_list = tree.xpath('//*[@id="gzlist"]/li')
     for li in li_list:
      name = li.xpath('./dl/@title')[0]
      print(name)
     sleep(5)
     bro.quit()

    브라우저 기반 자동화 작업


    코드
    
    # 
    
    -  : get(url)
    
    -  : find 
    
    -  : send_ keys( 'xxx' )
    
    -  js : excute_script('jsCod')
    
    -  , : back(),forward( )
    
    -  : quit()
    코드
    https://www.taobao.com/
    
    from selenium import webdriver
    from time import sleep
    
    bro = webdriver.Chrome(executable_path=r"E:\google\Chrome\Application\chromedriver.exe")
    
    bro.get(url='https://www.taobao.com/')
    
    # 
    search_input = bro.find_element_by_id('q')
    sleep(2)
    # js , 
    bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
    sleep(2)
    # 
    search_input.send_keys(' ')
    button = bro.find_element_by_class_name('btn-search')
    button.click()
    
    bro.get('https://www.baidu.com')
    sleep(2)
    bro.back()
    sleep(2)
    bro.forward()
    sleep(5)
    bro.quit()

    selenium 처리 iframe:

    
    -  iframe , switch_to.frame(id)
    
    -  ( ) : from selenium. webdriver import ActionChains
    	-  : action = ActionChains (bro)
    	- click_and_hold(div) : 
    	- move_by_offset(x,y)
    	- perform( ) 
    	- action.release( ) 
    코드
    https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable
    
    from selenium import webdriver
    from time import sleep
    from selenium.webdriver import ActionChains
    bro = webdriver.Chrome(executable_path=r"E:\google\Chrome\Application\chromedriver.exe")
    
    bro.get('https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')
    
    bro.switch_to.frame('iframeResult')
    
    div = bro.find_element_by_id('draggable')
    
    # 
    action = ActionChains(bro)
    action.click_and_hold(div)
    
    for i in range(5):
     action.move_by_offset(17,0).perform()
     sleep(0.3)
    
    # 
    action.release()
    
    bro.quit()

    selenium 아날로그 로그인 QQ 공간


    코드
    https://qzone.qq.com/
    
    from selenium import webdriver
    from time import sleep
    
    
    bro = webdriver.Chrome(executable_path=r"E:\google\Chrome\Application\chromedriver.exe")
    bro.get('https://qzone.qq.com/')
    bro.switch_to.frame("login_frame")
    
    switcher = bro.find_element_by_id('switcher_plogin')
    switcher.click()
    
    user_tag = bro.find_element_by_id('u')
    password_tag = bro.find_element_by_id('p')
    user_tag.send_keys('1234455')
    password_tag.send_keys('qwer123')
    sleep(1)
    
    but = bro.find_element_by_id('login_button')
    but.click()

    헤드 없는 브라우저 및 회피 탐지


    코드
    
    from selenium import webdriver
    from time import sleep
    # 
    from selenium.webdriver.chrome.options import Options
    # 
    from selenium.webdriver import ChromeOptions
    
    # 
    chrome_options = Options()
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-gpu')
    # 
    option = ChromeOptions()
    option.add_experimental_option('excludeSwitches',['enable-automation'])
    
    bro = webdriver.Chrome(executable_path=r"E:\google\Chrome\Application\chromedriver.exe",chrome_options=chrome_options,options=option)
    
    bro.get('https://www.baidu.com')
    print(bro.page_source)
    sleep(2)
    bro.quit()
    이python 파충류selenium 모듈에 대한 상세한 설명은 여기까지입니다. 더 많은 관련python 파충류selenium 모듈 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보시기 바랍니다. 앞으로 많은 응원 부탁드립니다!

    좋은 웹페이지 즐겨찾기