この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン | |||
プログラミング:python:webスクレイピング:基本 [2019/07/14 02:18] sotoyama |
プログラミング:python:webスクレイピング:基本 [2019/07/14 02:21] (現在) sotoyama |
||
---|---|---|---|
ライン 1: | ライン 1: | ||
- | ===== Seleniumを使用したスクレイピング ===== | + | ===== 基本 ===== |
- | ==== ブラウザ起動 ==== | + | ==== XXXX ==== |
- | webdriverを使用してブラウザを起動し、ターゲットとするURLを開きます。\\ | + | |
- | 以下の例ではChromeを起動しています。他のブラウザを使用する場合は、webdriverから対象ブラウザの起動メソッドを探してください。 | + | |
<code python> | <code python> | ||
- | from selenium import webdriver | + | XXXX |
- | + | ||
- | # Chrome起動 | + | |
- | browser = webdriver.Chrome('ドライバのパス') | + | |
- | browser.get('ターゲットURL') | + | |
- | + | ||
- | # ~~~ 解析処理 ~~~ | + | |
- | + | ||
- | # Chrome終了 | + | |
- | browser.quit() | + | |
- | </code> | + | |
- | ※環境変数を設定してある場合は'ドライバのパス'は不要です。 | + | |
- | + | ||
- | ==== HTMLから値取得 ==== | + | |
- | === ID属性指定 === | + | |
- | webdriverのfind_element_by_id()を使用します。 | + | |
- | <code python> | + | |
- | browser = webdriver.Chrome() | + | |
- | # ~~~ 省略 ~~~ | + | |
- | + | ||
- | element = browser.find_element_by_id('ID属性名') | + | |
- | print(element.text) | + | |
- | </code> | + | |
- | + | ||
- | === タグ指定 === | + | |
- | == 単一要素取得 == | + | |
- | webdriverのfind_element_by_tag_name()を使用します。 | + | |
- | <code python> | + | |
- | browser = webdriver.Chrome() | + | |
- | # ~~~ 省略 ~~~ | + | |
- | + | ||
- | element = browser.find_element_by_tag_name('タグ名') | + | |
- | print(element.text) | + | |
- | </code> | + | |
- | + | ||
- | == 全要素取得 == | + | |
- | webdriverのfind_elements_by_tag_name()を使用します。\\ | + | |
- | リスト型で返却されるので、for文等で処理を加えます。 | + | |
- | <code python> | + | |
- | browser = webdriver.Chrome() | + | |
- | # ~~~ 省略 ~~~ | + | |
- | + | ||
- | elements = browser.find_elements_by_tag_name('タグ名') | + | |
- | for i in elements: | + | |
- | print(i.text) | + | |
- | </code> | + | |
- | + | ||
- | ==== ブラウザの操作 ==== | + | |
- | === テキスト入力 === | + | |
- | WebElementのsend_keys()を使用します。 | + | |
- | <code python> | + | |
- | browser = webdriver.Chrome() | + | |
- | # ~~~ 省略 ~~~ | + | |
- | + | ||
- | element = browser.find_element_by_id('ID属性名') | + | |
- | element.send_keys('文字列入力') | + | |
- | </code> | + | |
- | + | ||
- | === ボタン押下 === | + | |
- | WebElementのclick()を使用します。 | + | |
- | <code python> | + | |
- | browser = webdriver.Chrome() | + | |
- | # ~~~ 省略 ~~~ | + | |
- | + | ||
- | element = browser.find_element_by_id('ID属性名') | + | |
- | element.click() | + | |
</code> | </code> | ||