LoginSignup
0
0

More than 1 year has passed since last update.

selenium備忘録

Posted at

スクレイピングするときのメモ程度なので、読んでも役に立ちません。

最初の設定

webdriver.Chtomeoptions()

options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--no-sandbox')
options.add_argument('--disable-dev-shm-usage')

options.add_argumentでオプションを追加していく

  • --headless
    • バックグラウンドモードでの実行
  • --no-sandbox
    • sandboxモード(セキュリティ?)の解除
  • --disable-dev-shm-usage
    • /dev/shmパーティションの使用を禁止し、パーティションが小さすぎることによる、クラッシュを回避する。
    • よくわからん
# Chromeの起動
driver = webdriver.Chrome('chromedriver',options=options)
# 要素がリロードされるまで、最大10秒待つ。この場合はChrome
driver.implicitly_wait(10)

webサイトの操作

サイト読み込み

以下のようにサイトに飛ぶことができる。

url = 'https://**************.***' #サイトのURL
browser.get(url) #サイトにアクセス

要素の抽出

要素を検索して抽出することができる。

browser.find_element() #最初に見つかった1つのみ
browser.find_elements() #全てに要素

要素の指定は以下のようにByというライブラリを使用する。

#.find.elementで使う定数を定義
from selenium.webdriver.common.by import By

name_elements = browser.find_elements(By.CLASS_NAME,'name')
name_element = browser.find_elements(By.CLASS_NAME,'name')[0] #ひとつだけ。find_elementと同じ結果になる

Byによって指定できる要素は以下の通り。

CLASS_NAME :クラス名
CSS_SELECTOR :CSSセレクタ
ID :id属性
LINK_TEXT :リンクが設定されているテキスト
NAME :name属性
PARTIAL_LINK_TEXT :リンクが設定されているテキストの一部
TAG_NAME :タグ名
XPATH :XPATH(HTMLの階層をファイルパスみたいに書く)
0
0
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
0