python爬虫類-動的ロードデータ処理

10564 ワード

seleniumインストール
環境のインストール
pip install selenium

ブラウザドライバのインストール
まずここでドライバの対応するバージョンをダウンロードしてこの文章の中で探すことができます
プロセスの使用
環境設定後
  • ブラウザオブジェクト
  • をインスタンス化
  • オペレーティングコードの作成
  • 要求:get(url)
  • ラベル位置決め:find
  • タグインタラクション:send_keys('xxx')
  • 実行jsプログラム:excute_script('jsCode')
  • 前進、後退:forward()back()
  • ブラウザを閉じる:quit()
  • from selenium import webdriver
    from time import sleep
    bro = webdriver.Chrome(executable_path='./chromedriver')
    
    bro.get('https://www.taobao.com/')
    
    #    
    search_input = bro.find_element_by_id('q')
    #    
    search_input.send_keys('Iphone')
    
    #    js  
    bro.execute_script('window.scrollTo(0,document.body.scrollHeight)')
    sleep(2)
    #      
    btn = bro.find_element_by_css_selector('.btn-search')
    btn.click()
    
    bro.get('https://www.baidu.com')
    sleep(2)
    #  
    bro.back()
    sleep(2)
    #  
    bro.forward()
    
    sleep(5)
    
    bro.quit()
    

    iframeタグに遭遇
    位置決めラベルがiframeにある場合は、switch_to.frame(id)を使用する必要があります.
    マウスの部分インタラクションをシミュレート
    from selenium.webdriver import ActionChains
    
    #           
    action = ActionChains(brower)
    
  • クリックして押す:click_and_hold(div)
  • 移動:move_by_offset(x,y)
  • 動作チェーンを直ちに実行する:perform()
  • 動作チェーンオブジェクトを解放する:action.release()
  • from selenium import webdriver
    from time import sleep
    #         
    from selenium.webdriver import ActionChains
    bro = webdriver.Chrome(executable_path='./chromedriver')
    
    bro.get('https://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')
    
    #           iframe                     
    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):
        #perform()         
        #move_by_offset(x,y):x     y    
        action.move_by_offset(17,0).perform()
        sleep(0.5)
    
    #     
    action.release()
    
    bro.quit()
    

    ヘッドレスブラウザの実装
    ヘッドレスブラウザは、可視化インタフェースのないseleniumです.
    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'])
    
    #     selenium         
    bro = webdriver.Chrome(executable_path='./chromedriver',chrome_options=chrome_options,options=option)
    
    #      (     ) phantomJs
    bro.get('https://www.baidu.com')
    
    print(bro.page_source)
    sleep(2)
    bro.quit()