はじめに
Seleniumでスクレイピングしてるとき、広告があるせいで読み込みに時間がかかってしまう問題がある。
広告さえ無ければ1,2秒で読み込みが終わるため、Adblockを導入したい。
Seleniumには拡張機能を読み込む機能はあるが、色々ややこしいので触りにくい。
そこで、SeleniumAdblock
というパッケージを紹介する。
SeleniumAdblock
まず公式Githubの指示通りにインストールする。
pip install git+https://github.com/sandrocods/SeleniumAdblock.git
その後、ChromeDriverに渡すオプションを以下のように設定して実行すると、広告をブロックしてスクレイピングできる。
from selenium import webdriver
import SeleniumAdblock
options = SeleniumAdblock.SeleniumAdblock()._startAdBlock()
options.add_argument('--headless')
options.add_argment('--no-sandbox')
options.add_argment('--remote-debugging-pipe')
driver = webdriver.Chrome(options=options)
driver.get("https://example.com/")
実際に試してみると、ブロック無しでnetkeiba.comからレース情報を読み込むと数十秒かかっていたのが、SeleniumAdblockを導入することで数秒で終わるようになった。
効果絶大。
まとめ
Seleniumでスクレイピングを行っていて広告に悩まされている人はSeleniumAdblock
を導入してはどうだろうか。
ほぼ全ての広告をブロックできるため、スクレイピング効率が大きく向上するはずだ。