0
3

DrissionPageのChromiumPageの使い方

Last updated at Posted at 2024-07-20

DrissionPageはウェブ自動化、スクレイピング、テストのための優れたツールである。この記事ではChromiumPageの機能を簡潔に紹介している。

完全なドキュメントはDrissionPageのドキュメントで確認できる。

目次

  1. インストール
  2. ChromiumPageオブジェクトの作成
  3. 基本的な使い方
  4. 高度な使い方
  5. 一般的なシナリオの処理
  6. ページ情報
  7. ファイルアップロード
  8. タブ管理
  9. iFrame処理
  10. イベントリスナー
  11. ブラウザアクション
  12. 画面操作
  13. ブラウザオプション

インストール

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')
0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3