スクレイピングするときのメモ程度なので、読んでも役に立ちません。
最初の設定
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の階層をファイルパスみたいに書く)