2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python】selenium-webdriverをヘッドレスモードで起動させる(Edge)

Last updated at Posted at 2023-04-19

目的

スクレイピングツールで、画面表示しながら動いていたものをヘッドレスモードに変更しようとした時に、少しハマったので備忘として記録。

エラー内容

driver.get('https://xxxxx.jp/') したときに以下エラーが発生。

unknown error: net::ERR_CONNECTION_TIMED_OUT
sample.py(実行したときのコード)
        from msedge.selenium_tools import Edge, EdgeOptions

        # Edgeのオプション
        options = EdgeOptions()
        options.use_chromium = True
        options.add_argument('--headless')
        
        # webdriver起動
        edgepath = "C:\xxxxx\msedgedriver.exe"
        driver = Edge(edgepath, options = options)

        # 情報取得
        driver.get('https://xxxxx.jp/') ←★ここでエラー!!

原因

ツール実行環境がプロキシサーバ経由で、インターネットにアクセスしている。
画面表示して実行する場合だとWindowsの設定を参照してスクレイピング対象のWebサイトにアクセスできていたが、ヘッドレスモードで起動するとプロキシ設定が参照されない模様。
以下のようにオプションにプロキシサーバの設定を追加することでエラーが解消された。

対応

EdgeOptionsにプロキシサーバの情報を設定

sample.py(対応後のコード)
        from msedge.selenium_tools import Edge, EdgeOptions

        # Edgeのオプション
        options = EdgeOptions()
        options.use_chromium = True
        options.add_argument('--headless')
        
        # プロキシサーバの設定を追加
        proxy_address = "xxx.xx.xx.xx:8080"
        options.add_argument('--proxy-server={}'.format(proxy_address))
        
        # webdriver起動
        edgepath = "C:\xxxxx\msedgedriver.exe"
        driver = Edge(edgepath, options = options)

        # 情報取得
        driver.get('https://xxxxx.jp/')

最後に

AWSを使ったサーバーレスアプリの開発方法を紹介しています。
こちらもぜひご覧ください。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?