質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

AWS IAM

AWS Identity and Access Management (IAM)は、AWS のサービスやリソースにアクセスできるユーザーやグループを指定し、きめ細かいアクセス許可を一元管理することができるサービスです。

Q&A

1回答

520閲覧

AWSのEC2でfirefoxが起動できません

taigabnf

総合スコア1

Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

AWS IAM

AWS Identity and Access Management (IAM)は、AWS のサービスやリソースにアクセスできるユーザーやグループを指定し、きめ細かいアクセス許可を一元管理することができるサービスです。

0グッド

0クリップ

投稿2023/06/22 03:23

実現したいこと

AWS EC2上でseleniumを使い、firefoxでスクレイピングをしたい。

前提

AWSのEC2でseleniumを使ったスクレイピングツールの開発をしています。
geckodriverを用いて、firefoxの起動が出来ません。

そもそもAWS EC2ではgekcodriverでfirefoxを起動できないのでしょうか?
別途、おすすめのデプロイ先がありましたら、ご教示いただけますと幸いです。

発生している問題・エラーメッセージ

Python

1selenium.common.exceptions.SessionNotCreatedException: 2Message: Expected browser binary location, 3but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line

該当のソースコード

Python

1async def submit_form(request: Request, url: str = Form(...), number: int = Form(...),suburl: str = Form(...)): 2 logger.debug("Starting form submission") 3 for _ in range(number): 4 options = Options() 5 options.add_argument('--headless') 6 options.binary = FirefoxBinary('/usr/bin/firefox') 7 driver = webdriver.Firefox(executable_path='/home/ubuntu/selenium/geckodriver', options=options) 8 driver.get("https://www.google.co.jp/") 9 search = driver.find_element(By.NAME, "q")

試したこと

・whichi firefoxでバイナリファイルの位置確認済み。(/usr/bin/firefox)
・FirefoxBinaryの指定を「'/usr/bin/firefox/firefox113」にする

補足情報(FW/ツールのバージョンなど)

・firefox-113
・AWS EC2のOSはUbuntu
・geckodriverはfirefox113に対応するものを入れています。

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

この回答はGPT-4による自動生成回答です

AWS EC2上でSeleniumとFirefoxを使用することは可能です。ただし、いくつかの設定が必要です。

まず、FirefoxとGeckodriverをインストールしてください。

bash

1sudo apt-get update 2sudo apt-get install -y firefox 3wget https://github.com/mozilla/geckodriver/releases/download/v0.29.1/geckodriver-v0.29.1-linux64.tar.gz 4tar -xvzf geckodriver-v0.29.1-linux64.tar.gz 5sudo mv geckodriver /usr/local/bin/

次に、Xvfbをインストールして仮想ディスプレイを設定します。

bash

1sudo apt-get install -y xvfb 2Xvfb :99 -ac & 3export DISPLAY=:99

これで、SeleniumとFirefoxを使用してスクレイピングができるようになります。

以下のようにコードを修正してください。

Python

1from selenium import webdriver 2from selenium.webdriver.firefox.options import Options 3from selenium.webdriver.common.by import By 4 5async def submit_form(request: Request, url: str = Form(...), number: int = Form(...),suburl: str = Form(...)): 6 logger.debug("Starting form submission") 7 for _ in range(number): 8 options = Options() 9 options.add_argument('--headless') 10 driver = webdriver.Firefox(executable_path='/usr/local/bin/geckodriver', options=options) 11 driver.get("https://www.google.co.jp/") 12 search = driver.find_element(By.NAME, "q")

これで、AWS EC2上でSeleniumとFirefoxを使用してスクレイピングができるはずです。

投稿2023/06/22 03:24

teratail-ai

Powered by GPT-4

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問