2023-07-27

【Python】Error parsing cert retrieved from AIA (as DER)エラーの対処方法を解説

Pythonの記事

Pythonでスクレイピングを実行、あるサイトの情報を取得したところ、見慣れないエラーが表示されました。

[xxx/xxx:ERROR:cert_issuer_source_aia.cc(xx)] Error parsing cert retrieved from AIA (as DER):

スクレイピングの処理自体は問題なく実行できていますが、気になったのでエラー解消方法を調べてみました。

エラーの原因

エラーの原因は何でしょうか。
エラーメッセージを翻訳サイトで直訳したところ、どうやらサイトのサーバ証明書に起因するようです。

エラーメッセージの原文

[25232:23556:0720/163005.892:ERROR:cert_issuer_source_aia.cc(34)] Error parsing cert retrieved from AIA (as DER):
ERROR: Couldn't read tbsCertificate as SEQUENCE
ERROR: Failed parsing Certificate

エラーメッセージをGoogle翻訳

[25232:23556:0720/163005.892:ERROR:cert_issuer_source_aia.cc(34)] AIA (DER として) から取得した証明書の解析エラー:
エラー: tbsCertificate をシーケンスとして読み取れませんでした
エラー: 証明書の解析に失敗しました

下記はエラーが表示されたコードです。本来はECモールの検索結果から商品情報をループして取得するというものですが、わかり易くするため簡略化しています。
単純にサイト情報を取得したところでエラーが発生、表示されます。

option = Options()
driver = webdriver.Chrome('chromedriver', options=option)

target_url = "https://shopping.yahoo.co.jp/search?area=13&astk=&aq=&oq=&first=1&ss_first=1&ts=1690262274&mcr=61c8b38630ebd3fd3c8620904f026dbc&sretry=1&prom=1&p=vue+js+%E5%85%A5%E9%96%80%E3%80%80%E3%82%84%E3%81%95%E3%81%97%E3%81%84&sc_i=shp_pc_search_searchBox_2"
driver.get(target_url)

原因を切り分けるため、URLを別サイトに変更したところエラーが発生しませんでした。
つまり、サイト固有のサーバ証明書に起因するエラーだと考えます。
これまで同様のコードでも発生しなかったこと、初めてスクレイピングを試みたサイトということとも合致します。

option = Options()
driver = webdriver.Chrome('chromedriver', options=option)

target_url = "https://google.com" # 取得先サイトを変更するとエラーが発生しない
driver.get(target_url)

スポンサーリンク

エラーへの対処方法

処理自体には影響がないので、特段気にする必要はないでしょう。
しかし、エラーが表示されるのが煩わしいという場合は、エラーを非表示にすることで対処可能です。

chromedriverがChrome(ブラウザ)にenable-loggingというオプションを与え、ログ出力がデフォルトで有効になっていることが原因です。
これはexcludeSwitchesオプションで無効化出来ますので、以下のように設定を行うことでエラー出力を回避できます。

option = Options()
option.add_experimental_option('excludeSwitches', ['enable-logging']) # この記述を追加する
driver = webdriver.Chrome('chromedriver', options=option)

...

もっとも、これによりChromeのログ出力がされなくなりますので、その点は注意が必要です。

まとめ

Pythonでスクレイピングを行うと、ブラウザごとやサイトごとにさまざまなエラーが起こります。意図した通りに処理が行われるのであれば、スルーするというのもテクニックといえるのではないでしょうか。「ああ、これね」くらいに。