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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python 3.x

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Python

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

selenium

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

Q&A

解決済

3回答

32252閲覧

pythonでローカルサーバーにアクセスできない

unowen

総合スコア17

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Python 3.x

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Python

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

selenium

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

0グッド

0クリップ

投稿2018/09/15 13:58

他の質問でいくつか参考になるご回答をいただいたので、それを踏まえて改めて質問させていただきます。

Mobile Emulation
上記サイトのpython項目を参考にしプログラムを組んだのですが、「http://127.0.0.1:4444/wd/hub」
にアクセスできず、エラーとなってしまいます。

python

1from selenium import webdriver 2 3driver = webdriver.Chrome("./chromedriver.exe") 4 5def app(): 6 7 8 import time 9 import random 10 from selenium import webdriver 11 12 mobile_emulation = { "deviceName": 'iPhone 6/7/8' } 13 14 chrome_options = webdriver.ChromeOptions() 15 16 chrome_options.add_experimental_option("mobileEmulation", mobile_emulation) 17 18 driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub', 19 20 desired_capabilities = chrome_options.to_capabilities()) #ここにエラー 21 22 23 driver.get("https://アドレスはあっています") 24 25 num = random.randint(1, 99) 26 27 red = driver.find_element_by_class_name("とある場所") 28 red.click() 29 30 numBox = driver.find_element_by_name("とある場所") 31 numBox.send_keys(num) 32 33 reader = driver.find_element_by_id("とある場所") 34 reader.send_keys("挿入句") 35 36 comment = driver.find_element_by_css_selector("略") 37 comment.click() 38 time.sleep(15) 39 40interval = 1 41 42while True: 43 app() 44 time.sleep(interval)

上記がコードで #ここにエラー と書いてあるところに出たエラーがこちらです。

HTTPConnectionPool(host='127.0.0.1', port=4444): Max retries exceeded with url: /wd/hub/session (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0565B3B0>: Failed to establish a new connection: [WinError 10061] 対象のコンピューターによって拒否されたため、接続できませんでした。')) File "C:\Users****\Documents\Python Scripts$$$***.py", line 17, in app driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',desired_capabilities = chrome_options.to_capabilities()) File "C:\Users***\Documents\Python Scripts$$$***.py", line 40, in <module> app()

またターミナルには

ConnectionRefusedError: [WinError 10061] 対象のコンピューターによって拒否されたため、接続できませんでした。

と出ています。
そこでchromeにhttp://127.0.0.1:4444/wd/hub を直打ちた結果、

「このサイトにアクセスできません
127.0.0.1 で接続が拒否されました。
次をお試しください:
接続を確認する
プロキシとファイアウォールを確認する
ERR_CONNECTION_REFUSED」

と出たため、恐らくローカルサーバーに接続できないエラーだと思いました。(python初めて一週間もたっていない初心者なので違う可能性もあります)

外部サイト
に従ってApacheはインストールしてありますがファイル操作は一切していません。

どなたか問題点と対処法が分かる方いましたら、返信の方お願いします。

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

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

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

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

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

y_waiwai

2018/09/15 14:12

繰り返しますが、それでなにを表示させようとしてるんでしょうか?
unowen

2018/09/15 14:21 編集

ご回答ありがとうございます。PCからスマホ版でwebサイトを表示させ、任意のキーワードで検索結果を取得したいと思っています。
opyon

2018/09/15 20:44

ご存知かもしれませんが、、、以下引用。127.0.0.1はローカル・ループバック・アドレスと呼ばれ、自分自身を指す特別なIPアドレスである。「localhost」という名前でも参照できる。http://www.atmarkit.co.jp/ait/articles/0610/14/news021.html
opyon

2018/09/15 20:49 編集

自分自身に接続してエラーとなっているので、接続を受け付けていない=サーバー環境が無いか、アクセス権限やファイヤーウォール関連が怪しそう。だけどそもそもこのコードが動作する前提や環境を理解せずにコードだけコピペして動かないと言っているのなら回答は付きにくいかもしれませんね。
guest

回答3

0

y_waiwaiさん、opyonさんがご指摘の「http://127.0.0.1:4444/wd/hub」で何を表示させるのかということですが、自分も同じ現象で悩み何度かこの投稿が検索に上がるのですが、具体的に言うとFLASK なりDjangoなりのアプリケーションが起動していないことが原因でした。

つまり、seleniumを使ったアプリなり、テストなりのプログラムを起動する前に、Djangoであれば、h「http://127.0.0.1:8000/」にアクセスしたときにテスト対象となるアプリケーションがDjangoの「runserver」コマンドで起動されている必要があります。でないとご質問のようなエラーが発生します。

私ももの忘れがひどいため、このミスを何度もやってこの投稿が検索上位に挙がってくるのですが、原因を忘れてしまって無駄な時間をつぶしてしまうので、回答させてもらいました。

いまとなっては当たり前のことなのですが、ついつい単体テストからseleniumを使ったテストにそのまま作業を継続していると、うっかりこのことを忘れてしまうのです。恥ずかしながら、今回は昨晩からしばらく悩んでいました。

※2021-5-6追記:selenium+Djangoでのテストの場合ですが、もっと便利な方法がありましたので追記します。
Django公式(LiveServerTestCase)に書いてあるのですが、TestCaseでなくて、このクラスを継承することによって、localhost:8000のかわりにself.live_server_urlをドメインとしてテスト対象のアプリケーションをテストプロセスと同時に立ち上げてくれます。これを使えば、runserverを起動する必要が無いことがわかりました。

投稿2021/05/02 06:41

編集2021/05/06 01:55
MorningMushroom

総合スコア53

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

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

0

重複していたポートを削除する方法を教えていただけますでしょうか。

投稿2020/10/20 03:43

ushin

総合スコア2

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

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

0

自己解決

重複していたポートを削除することで解決しました

投稿2018/09/16 05:10

unowen

総合スコア17

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問