python爬虫類-動的ロードデータ処理
10564 ワード
seleniumインストール
環境のインストール
ブラウザドライバのインストール
まずここでドライバの対応するバージョンをダウンロードしてこの文章の中で探すことができます
プロセスの使用
環境設定後ブラウザオブジェクト をインスタンス化オペレーティングコードの作成 要求: ラベル位置決め: タグインタラクション: 実行jsプログラム: 前進、後退: ブラウザを閉じる:
iframeタグに遭遇
位置決めラベルがiframeにある場合は、
マウスの部分インタラクションをシミュレートクリックして押す: 移動: 動作チェーンを直ちに実行する: 動作チェーンオブジェクトを解放する:
ヘッドレスブラウザの実装
ヘッドレスブラウザは、可視化インタフェースのないseleniumです.
環境のインストール
pip install selenium
ブラウザドライバのインストール
まずここでドライバの対応するバージョンをダウンロードしてこの文章の中で探すことができます
プロセスの使用
環境設定後
get(url)
find
send_keys('xxx')
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()