見出し画像

Python+seleniumでハマったこと

はじめに

このnoteではseleniumを使ったスクレイピング系のプログラムでハマったこと、気づいたことを随時更新してまとめていこうと思います
動作環境 windows11 + Python3.12 + selenium4

突然ログが見にくくなった

2024.04.01
ある日から(2月くらい?)のバージョンよりワーニング系のエラーなのかめちゃくちゃたくさんのログがでるようになった
これはamazonの商品ページにアクセスしてる時の模様

なんじゃこれw


INFO:CONSOLE(0)
Third-party cookie will be blocked. Learn more in the Issues tab.
から始まるやつが大量に めちゃくちゃうざい
直訳したらサードパーティのクッキーをブロックしたよ!系の模様
googoleがクッキーを廃止しようとしてるって話は聞いてたからそれのことかなぁと思いつつめちゃくちゃログに出てくるので正直目障り
また勝手に表示されるのですごい邪魔
自分で表示さしている大事なデバックログはどっか彼方に行くくらいでてくる

とりあえず検索

ググれカス!と親の仇くらい検索する
ログの文章のまま
INFO:CONSOLE(0)
Third-party cookie will be blocked. Learn more in the Issues tab.
selenium chrome ログ などなど

何個が記事が見つかる
簡単そうなものからめんどくさいものまで

ChatGPTに聞いてみよ

明確な答えが見つからなかったためAIに聞く
最近なんでもGPT-4に聞いている
GTPSで作った自分専用のpythonヘルパー君に頼る
GPTSの話はまた別でやりたいと思う

NFO:CONSOLE(0)] seleniumのこのエラーを表示しない方法

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_experimental_option('excludeSwitches', ['enable-logging'])  # ログを減らす

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=chrome_options)

driver.get('https://www.example.com')
# 作業...
driver.quit()

なんかそれっぽいの出てきたから試す・・・
改善されない

次の回答
ログレベルを指定する

さらに細かくログレベルを設定することもできます。これは、loggingPrefsを使って行いますが、これは主にDevTools Protocolを介して行われるものです。例えば、以下のように設定することで、特定のログレベルのメッセージのみを表示させることができます。

やってみる
はい無理~
うまくいかない

もっかい深くググレカス!

    options.add_argument('--log-level=0')

これでいけるって記事見た!
試してみる前にこれの意味調べる
--log-levelの値をまず調べてみよう

  • 0またはINFO: デフォルトのログレベル。情報、警告、エラーログが出力されます。

  • 1またはWARNING: 警告とエラーメッセージのみを出力します。

  • 2またはERROR: エラーメッセージのみを出力します。

  • 3: ログ出力をほとんどまたは完全に抑制します(致命的なエラーを除く)。

ログの制御

いままで意識してこなかったけどログの制御ができるらしい
フィルタリングしたりログ全体のレベルを変えたり
何個がやり方はあったけど最終一番簡単なのが正解だった
余計なログ(致命的エラー以外)をすべて省く
これちゃうん
でも0は意味なくない?
やってみた 消えないw まぁそうだろうとは思った
3で全部消えそう

まとめ

いらんログをすべて消す方法

    options.add_argument('--log-level=3')

こいつを指定してdriverを開く
きえたーーーー!
いらんログ全部消えて例外エラーレベルのみ残った!

因みにほかの事しながらだけどだいたい解決まで半日くらいかかった・・・
無知は罪 時間の浪費なので知識はつけていきましょう
いつもだいたいこんな手順で解決までいろいろやっています
今後もできるだけアウトプットしたいなと思います!


この記事が気に入ったらサポートをしてみませんか?