webスクレイピングについて②

記事
学び
seleniumでウェブサイトの情報を取得する際に、ネット環境が不安定であったり、ウェブサイトの情報が大きいと、サイトが表示されるまで時間がかかってしまいます。
表示するだけならいいのですが、ウェブサイトを操作したりする場合には、スクレイピングが中断してしまいます。

過去のブログでtime.sleep(x)を利用して、コードの進行を意図的に止める方法をお伝えしましたが、止める時間を具体的に指定できる一方で、あらゆるウェブサイトの表示時間をあらかじめ予測することは難しいと思います。

そこで、ウェブサイトがすべて表示されたら、次のコードに進むようにしてしまえば、具体的に秒数を指定する必要もなくなります。
また、あまりにも表示に時間がかかる場合も考えられますので、待機時間を最大30秒にも指定してみます。
具体的には、
①必要なモジュールのインストール
pip install selenium
#seleniumをインストールします。

②必要なモジュールをインポート
from selenium import webdriver
#ドライバーのインポート
from selenium.webdriver.support import expected_conditions as EC
#読み込むまで待機する機能のための、インポート。
from selenium.webdriver.support.ui import WebDriverWait
#最大の読み込み時間を設定するためのインポート

③コード内容
driver = webdriver.Chrome()
wait = WebDriverWait(driver=driver, timeout=30)
   #最大の読み込み時間を設定 ここでは最大30秒の待機を指定

wait.until(EC.presence_of_all_elements_located)
#要素がすべて検出するまで待機するためのコード

上記内容を個別の事象に合わせてカスタマイズすると、
汎用性が高くなると思います。





サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す