seleniumでスクレイピング
動的に書かれたサイトをseleniumでスクレイピング
JS等で書かれたサイトだとただBeautifulSoupとかでスクレイピングしようとしても出来ない場合があります。
そんな場合に使えるのがseleniumです。
chrome driverを入手
まずchrome のバージョンを調べます。
(Macの場合)
1. chromeを開いた状態で、画面左上の「chrome」をクリック
2. 「Google chromeについて」をクリック
3. 「設定-Chromeについて」というページが開かれるので、そこに表示される
バージョン: 8?.〜〜〜〜という部分を確認します。
ダウンロードページでChrome Driverを入手します。
ダウンロードページ で、
以下の部分から、上で調べたバージョンに合致するchrome driverをダウンロードします。
(ページリンク先でOSを選択します。)
使い方
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time
url="~~~~~~"#ここに開きたいURL
options = Options()
options.add_argument('--headless') #ヘッドレスモードを有効
Driver_path="~~~~~~" #ダウンロードしたchromeドライバーを置いた場所を指定
driver = webdriver.Chrome(Driver_path,options=options)
driver.get(url)
time.sleep(2)
html = driver.page_source.encode('utf-8')
soup = BeautifulSoup(html, 'lxml')
#この後は普通にBeautiful Soupの文法通り使える。
optionをつけることによって、driver.getするたびにページが開かれてしまうことを防いでいます。
(これによって、処理速度が多少早くなります。)
参考
Author And Source
この問題について(seleniumでスクレイピング), 我々は、より多くの情報をここで見つけました https://qiita.com/baraobara/items/0ac6a3973b93fa65fd44著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .