PythonでSeleniumを使うならWebDriverのラッパーを定義すると見通しがよくなる
PythonからSeleniumを扱う場合、書きがちなコードは次の通り。
sample.py
import chromedriver_binary
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
try:
opt = Options()
# optの初期化コード
driver = webdriver.Chrome(options=opt)
# スクレイピング
finally:
driver.quit()
この書き方だとスクレイピングの処理が長くなった時に見通しが悪くなりがち。
改良版がこちら。
sample2.py
from webdriver_wrapper import WebdriverWrapper
with WebdriverWrapper():
# スクレイピング
webdriver_wrapper.py
import chromedriver_binary
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
class WebdriverWrapper:
def __init__(self):
self._opt = Options()
self._driver = None
# optの初期化コード
def __enter__(self):
self._driver = webdriver.Chrome(options=self._opt)
return self._driver
def __exit__(self):
self._driver.quit()
コード量は増えたがモジュール毎に役割が明確になったので処理の見通しはよくなった。
Author And Source
この問題について(PythonでSeleniumを使うならWebDriverのラッパーを定義すると見通しがよくなる), 我々は、より多くの情報をここで見つけました https://qiita.com/Tadahiro_Yamamura/items/f6b9d976670a5b288658著者帰属:元の著者の情報は、元の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 .