リモート先のArchLinuxからpythonのwebdriverでfirefoxを使ってスクレイピングをしようとしたのですが、以下のようなエラーが出てうまくいきませんでした。
開発環境
Arch linux
python 3.6
コマンド
sudo pacman -Sy --noconfirm unzip icu xorg-server-xvfb && sudo pacman -Sy --noconfirm firefox && wget https://github.com/mozilla/geckodriver/releases/download/v0.21.0/geckodriver-v0.21.0-linux64.tar.gz -O g.tar.gz && yes|tar -zxvf g.tar.gz && rm -rf g.tar.gz && pip3 install selenium && pip3 install pyvirtualdisplay && python3 scrape.py
ソースコード
python:scrape.
1from selenium import webdriver 2from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 3from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 4from pyvirtualdisplay import Display 5from time import sleep 6 7if __name__ == "__main__": 8 display = Display(visible=0, size=(1024, 768)) 9 display.start() 10 11 binary = FirefoxBinary("/usr/sbin/firefox") 12 binary.add_command_line_options("-headless") 13 cap = DesiredCapabilities().FIREFOX.copy() 14 cap["marionette"] = False 15 cap["firefox_binary"] = "/usr/sbin/firefox" 16 driver = webdriver.Firefox( 17 firefox_binary=binary, 18 executable_path="./geckodriver", capabilities=cap) 19 20 driver.get("https://www.google.com/") 21 driver.close() 22 display.stop()
エラー文
Traceback (most recent call last): File "scrape.py", line 12, in <module> driver = webdriver.Firefox(executable_path="./geckodriver", capabilities=cap) File "/usr/lib/python3.6/site-packages/selenium/webdriver/firefox/webdriver.py", line 184, in __init__ self.binary, timeout) File "/usr/lib/python3.6/site-packages/selenium/webdriver/firefox/extension_connection.py", line 52, in __init__ self.binary.launch_browser(self.profile, timeout=timeout) File "/usr/lib/python3.6/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 73, in launch_browser self._wait_until_connectable(timeout=timeout) File "/usr/lib/python3.6/site-packages/selenium/webdriver/firefox/firefox_binary.py", line 104, in _wait_until_connectable "The browser appears to have exited " selenium.common.exceptions.WebDriverException: Message: The browser appears to have exited before we could connect. If you specified a log_file in the FirefoxBinary constructor, check it for details.
追記
sudo pacman -Sy --noconfirm firefox firefox-adblock-plus firefox-noscript
を実行することで上記のエラーは起こらなくなったのですが、代わりに以下のようなエラーが出るようになりました。このエラーの解決方法をご教授ください。
エラー文
selenium.common.exceptions.WebDriverException: Message: Can't load the profile. Possible firefox version mismatch. You must use GeckoDriver instead for Firefox 48+. Profile Dir: /tmp/tmpvwp6fuam If you specified a log_file in the FirefoxBinary constructor, check it for details.
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/21 10:10 編集
2018/08/22 11:57