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

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

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

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

Q&A

解決済

1回答

420閲覧

python ページ遷移について (python初心者です)

masanao2

総合スコア17

Python

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

0グッド

0クリップ

投稿2019/03/18 02:33

編集2019/03/18 04:44

python初心者です。よろしくお願いいたします
chromedriverを使用、ログイン状態を維持し画面遷移を行いたいのですが、
googleページが開いたあと、yahooページへ遷移しません。
どのように改善すればよろしいでしょうか?

from selenium import webdriver
import time

options = webdriver.ChromeOptions()
options.add_argument("user-data-dir=/Users/imac/Library/Application Support/Google/Chrome")
w = webdriver.Chrome(executable_path="/usr/local/bin/chromedriver", chrome_options=options)

driver = webdriver.Chrome()
driver.get("https://www.yahoo.co.jp")

上記プログラムを実行するとログイン済みのgoogleページが表示されますが、Yahoo!へ遷移がされません。
プログラム最後の2行がうまく働いていない状態です。

上記プログラムを参考にしたサイトはこちらです
https://qiita.com/yusukebkk/items/3fbe157ec2342d98d9fd

python環境を整えるために参考にしたサイトはこちらです
https://prog-8.com/docs/python-env

表示されるエラーログはこちらです
Traceback (most recent call last):
File "test.py", line 6, in <module>
w = webdriver.Chrome(executable_path="/usr/local/bin/chromedriver", chrome_options=options)
File "/Users/imac/.pyenv/versions/3.6.5/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in init
desired_capabilities=desired_capabilities)
File "/Users/imac/.pyenv/versions/3.6.5/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in init
self.start_session(capabilities, browser_profile)
File "/Users/imac/.pyenv/versions/3.6.5/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "/Users/imac/.pyenv/versions/3.6.5/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "/Users/imac/.pyenv/versions/3.6.5/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally
(unknown error: DevToolsActivePort file doesn't exist)
(The process started from chrome location /Applications/Google Chrome.app/Contents/MacOS/Google Chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.)
(Driver info: chromedriver=73.0.3683.68 (47787ec04b6e38e22703e856e101e840b65afe72),platform=Mac OS X 10.14.2 x86_64)

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

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

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

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

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

t_obara

2019/03/18 03:20

どのように遷移しようとしてできないのか、ログイン状態を維持できていないと考えたのはどのような状態になったからなのかについてご提示ください。
masanao2

2019/03/18 03:37

ご返答ありがとうございます。 from selenium import webdriver import time options = webdriver.ChromeOptions() options.add_argument("user-data-dir=/Users/imac/Library/Application Support/Google/Chrome") w = webdriver.Chrome(executable_path="/usr/local/bin/chromedriver", chrome_options=options) と、 driver = webdriver.Chrome() driver.get("https://www.yahoo.co.jp") は別々のプログラムとしては動くのですが、合わせ方がわかりませんでした。 上記のプログラムを実行して望む結果はYahooを表示した際にヤフーメールがログイン状態となっていることです。 こちらのサイトを参考にいたしました。 https://titirobo-develop.hatenablog.jp/entry/2018/07/28/181759
t_obara

2019/03/18 03:59

ご提示の参考サイトにされたとのことですが、実際に貴殿が行った手順も明記してください。また、「別々のプログラム」との記載がありますが、具体的に何と何をさすのがよくわかりませんでした。質問自体は編集できますので、そちらに整理して提示いただければ、より多くの方から様々な視点で回答案を提示していただけるようになるかと思います。
t_obara

2019/03/18 08:33

参考にするの後者より前者の方がよろしいかと思います。既存のブラウザの情報を利用するのではなく、クロール用に新たに情報を保存する方法です。
masanao2

2019/03/18 12:33

t_obara様 ありがとうございます。クローリングまわりを勉強してみます。
guest

回答1

0

自己解決

from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import Select
from selenium import webdriver
import os
userdata_dir = '任意のフォルダ名'
os.makedirs(userdata_dir, exist_ok=True)

options = webdriver.ChromeOptions()
options.add_argument('--user-data-dir=' + userdata_dir)

selenium専用のログイン情報を任意のフォルダに保存することで解決しました。
ありがとうございました。

投稿2019/04/11 01:58

masanao2

総合スコア17

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問