環境
- Windows 10
- Python 3.10.1
- Selenium 4.1.0
- Beautiful Soup 4.10.0
- VSCode
Selenium
取得系メソッド
- Selenium4から、find_element_by_idなどのメソッドは非推奨になった。使用すると以下の警告が出力される
UserWarning: find_element_by_* commands are deprecated. Please use find_element() instead
- そのため、find_element(By.ID)を使用し、()の中に検索する条件を指定する必要がある
(by_*の部分はのキーワード変数byで指定する) - どの条件で検索しても返り値は、selenium.webdriver.remote
.webelement.WebElementかWebElementのリスト
内容 | メソッド | 返り値 |
タグ名で1つの要素を取得 | find_element(By.TAG_NAME, "タグ名") | selenium.webdriver.remote |
タグ名で全要素を取得 | find_elements(By.TAG_NAME, "タグ名") | WebElementのリスト |
クラス名で1つの要素を取得 | find_element(By.CLASS_NAME, "クラス名") | selenium.webdriver.remote |
クラス名で全要素を取得 | find_elements(By.CLASS_NAME, "クラス名") | WebElementのリスト |
ID名で1つの要素を取得 | find_element(By.ID, "ID名") | selenium.webdriver.remote |
ID名で要素を取得 | find_elements(By.ID, "ID名") | WebElementのリスト |
name属性で1つの要素を取得 | find_element(By.NAME, "name属性") | selenium.webdriver.remote |
name属性で全要素を取得 | find_elements(By.NAME, "name属性") | WebElementのリスト |
xpathで1つの要素を取得 | find_element(By.XPATH, "xpath") | selenium.webdriver.remote |
xpathで全要素を取得 | find_elements(By.XPATH, "xpath") | WebElementのリスト |
cssセレクタで1つの要素を取得 | find_element( | selenium.webdriver.remote |
cssセレクタで全要素を取得 | find_elements( | WebElementのリスト |
入力系メソッド
- 取得したselenium.webdriver.remote.webelement.WebElementがinputタグであれば、値を入力できたり、buttonタグであれば、クリックしたりすることが可能
内容 | メソッド | 返り値 |
値の入力 | WebElement.send_keys('入力したい文字') | None |
特殊キーの入力(右の例はEnter) | WebElement.send_keys(Keys.ENTER) | None |
ボタンタグなどのクリック | None | |
フォームの送信 | WebElement.submit() | None |
Beautiful Soup
概要
- 基本的にfind,find_all,selectがあるが、基本的にはselectでいける(はず)
メソッド一覧
内容 | メソッド | 返り値 |
タグを指定して、最初の要素を取得 | find("タグ名") | bs4.element.tag 要素が見つからなかった場合、Noneが返る |
タグを指定して、全ての要素を取得 | find_all("タグ名") | bs4.element.ResultSet |
cssセレクタで指定して、すべての要素を取得 | select("cssセレクタ") | bs4.element.ResultSet |
まとめ
いかがでしたでしょうか。本記事では、Pythonでスクレイピングをする際によく使用するSeleniumとBeautiful Soupの主なメソッド一覧について紹介しています。ぜひ参考にしてみてください