分からないこと
Dockerコンテナ内でseleniumを操作してスクレイピングを行いたいのですが、
使用方法がどうにも分かりません。
参考にしたサイト
- selenium公式
- 【Qiita】 10分で理解する Selenium
- 【GitHub】 SeleniumHQ/docker-selenium
- 【dockerhub】 selenium/standalone-chrome
やったこと
【Qiita】 10分で理解する Seleniumこの記事の内容を実行しました。
- ターミナル(ローカル)で以下コマンドを実行
$ docker run -d -p 4444:4444 -v /dev/shm:/dev/shm selenium/standalone-chrome:4.0.0-beta-1-prerelease-20201208 >>> e396b9aff5d621693a2a6507330934d8f5d6e478db93036e441f2ec8d0237251
- Dockerコンテナ内に立ち上げたJupyterLabにて以下コマンドを実行
python
1from selenium import webdriver 2 3# Chrome のオプションを設定する 4options = webdriver.ChromeOptions() 5options.add_argument('--headless') 6 7# Selenium Server に接続する 8driver = webdriver.Remote( 9 command_executor='http://localhost:4444/wd/hub', 10 desired_capabilities=options.to_capabilities(), 11 options=options, 12) 13 14# Selenium 経由でブラウザを操作する 15driver.get('https://qiita.com') 16print(driver.current_url) 17 18# ブラウザを終了する 19driver.quit()
エラー内容
--------------------------------------------------------------------------- ConnectionRefusedError Traceback (most recent call last) /opt/anaconda3/lib/python3.8/site-packages/urllib3/connection.py in _new_conn(self) 158 try: --> 159 conn = connection.create_connection( 160 (self._dns_host, self.port), self.timeout, **extra_kw /opt/anaconda3/lib/python3.8/site-packages/urllib3/util/connection.py in create_connection(address, timeout, source_address, socket_options) 83 if err is not None: ---> 84 raise err 85 /opt/anaconda3/lib/python3.8/site-packages/urllib3/util/connection.py in create_connection(address, timeout, source_address, socket_options) 73 sock.bind(source_address) ---> 74 sock.connect(sa) 75 return sock ConnectionRefusedError: [Errno 111] Connection refused <<<<<<<<<<<<<<<<<<<<<<<<<中略>>>>>>>>>>>>>>>>>>>>>>>>>>> /opt/anaconda3/lib/python3.8/site-packages/urllib3/connectionpool.py in urlopen(self, method, url, body, headers, retries, redirect, assert_same_host, timeout, pool_timeout, release_conn, chunked, body_pos, **response_kw) 722 e = ProtocolError("Connection aborted.", e) 723 --> 724 retries = retries.increment( 725 method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2] 726 ) /opt/anaconda3/lib/python3.8/site-packages/urllib3/util/retry.py in increment(self, method, url, response, error, _pool, _stacktrace) 437 438 if new_retry.is_exhausted(): --> 439 raise MaxRetryError(_pool, url, error or ResponseError(cause)) 440 441 log.debug("Incremented Retry for (url='%s'): %r", url, new_retry) MaxRetryError: HTTPConnectionPool(host='localhost', port=4444): Max retries exceeded with url: /wd/hub/session (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f7c235d95b0>: Failed to establish a new connection: [Errno 111] Connection refused'))
調べてみたのですが意味がよく分かりません。
わかる方いらっしゃいましたら教えていただけますと幸いです。
回答1件
あなたの回答
tips
プレビュー