DrissionPageはウェブ自動化、スクレイピング、テストのための優れたツールである。この記事ではChromiumPageの機能を簡潔に紹介している。
完全なドキュメントはDrissionPageのドキュメントで確認できる。
目次
- インストール
- ChromiumPageオブジェクトの作成
- 基本的な使い方
- 高度な使い方
- 一般的なシナリオの処理
- ページ情報
- ファイルアップロード
- タブ管理
- iFrame処理
- イベントリスナー
- ブラウザアクション
- 画面操作
- ブラウザオプション
インストール
ChromiumPageを使用する前に、pipを使用してDrissionPageライブラリをインストールする:
pip install drissionpage
ChromiumPageオブジェクトの作成
ChromiumPageオブジェクトを作成することが、その機能を使用するための最初のステップ:
from drission_page import ChromiumPage
# ChromiumPageオブジェクトを作成
page = ChromiumPage()
Chromium実行ファイルを指定したり、オプションを追加したりすることも可能:
page = ChromiumPage(executable_path='/path/to/chromium', options=['--headless'])
基本的な使い方
ウェブページを開く
page.get('https://www.example.com')
要素の操作
要素の取得
element = page.get_ele('div.content')
要素情報の取得
text = element.text
attribute = element.attr('class')
要素のクリック
element.click()
要素へのテキスト入力
element.input('text')
高度な使い方
フレームとiFrameの処理
frame = page.switch_to_frame('iframe_name_or_id')
frame.locate('button#inside_frame').click()
page.switch_to_parent_frame()
JavaScriptの実行
result = page.run_js('return document.title')
print(result)
スクリーンショットの撮影
page.screenshot('screenshot.png')
Cookieの管理
cookies = page.get_cookies()
print(cookies)
page.set_cookie({'name': 'test', 'value': '1234'})
page.delete_cookie('test')
一般的なシナリオの処理
ポップアップとアラートの処理
page.accept_alert()
page.dismiss_alert()
要素の待機
要素が表示されるのを待つ
from drission_page import wait_for
wait_for(page.get_ele('div.content').is_visible, timeout=10)
要素がクリック可能になるのを待つ
wait_for(page.get_ele('button#submit').is_clickable, timeout=10)
前後のページに移動
page.back()
page.forward()
ページ情報
ページの訪問
page.visit('https://www.example.com')
ページ情報の取得
title = page.title
url = page.url
html = page.html
ページ操作
ページのリロード
page.reload()
ページの保存
page.save_screenshot('screenshot.png')
page.save_html('page.html')
ファイルアップロード
ファイルのアップロード
file_input = page.get_ele('input[type="file"]')
file_input.upload('/path/to/file')
タブ管理
新しいタブを開く
page.new_tab('https://www.example.com')
タブ間の切り替え
page.switch_tab(1) # 最初のタブに切り替え
タブを閉じる
page.close_tab(1) # 最初のタブを閉じる
iFrame処理
iFrameへの切り替え
frame = page.switch_to_frame('iframe_id')
frame.locate('button#inside_frame').click()
page.switch_to_parent_frame()
iFrame内の要素を探す
iframe = page.get_ele('iframe#iframe_id')
frame_page = page.switch_to_frame(iframe)
frame_element = frame_page.get_ele('div.content')
イベントリスナー
イベントリスナーの追加
page.add_listener('click', 'button#submit', callback_function)
def callback_function(event):
print(f'ボタンがクリックされました: {event}')
イベントリスナーの削除
page.remove_listener('click', 'button#submit')
ブラウザアクション
マウスアクション
element = page.get_ele('button#submit')
page.mouse.move_to(element)
page.mouse.click(element)
キーボードアクション
page.keyboard.type('Hello, World!')
page.keyboard.press('Enter')
画面操作
フルスクリーンモード
page.full_screen()
フルスクリーンモードの終了
page.exit_full_screen()
ブラウザオプション
ブラウザオプションの設定
options = {
'headless': True,
'disable_gpu': True,
'no_sandbox': True
}
page = ChromiumPage(options=options)
ブラウザ設定の変更
page.set_window_size(1920, 1080)
page.set_user_agent('MyCustomUserAgent/1.0')