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

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

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

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

Python

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

Q&A

2回答

4278閲覧

[python3.7.4]でログインできるサイトと、できないサイトの違い

aki_sasaki

総合スコア4

Python 3.x

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

Python

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

0グッド

1クリップ

投稿2019/08/29 08:18

編集2022/01/12 10:55

pythonで自動で入力フォームに記入しログインしたい

pythonでIDとパスワードを自動入力しログインしたいサイトがあります。
IDとパスワードの入力、ログインボタンのクリックは問題なく実行されています
(エラーメッセージは出ていません)。

ただ、ログイン後のサイトに遷移するわけではなく、
また入力フォームの画面に戻ってしまいます。

そのサイトは下記です。
https://login.bizmanager.yahoo.co.jp/login

同じコードで問題なくログインできるサイトもあり、下記に記載します。
https://uta.pw/sakusibbs/users.php?action=login

このようにサイトによってpythonで自動ログインできるサイトとそうでないサイトの
違いを教えていただきたいです。
また、どうしたらログインできなかったサイトでもログインできるようになるのかも
教えていただきたいです。

pythonやhtmlについての知識はあまりないです。

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

エラーメッセージ

該当のソースコード

python

1from selenium.webdriver import Firefox, FirefoxOptions 2from selenium.webdriver.common.by import By 3from selenium.webdriver.support.ui import WebDriverWait 4from selenium.webdriver.support import expected_conditions as EC# -*- coding: utf-8 -*- 5 6USER = "XXXXXX" 7PASS = "XXXXXX" 8 9options = FirefoxOptions() 10browser = Firefox(options=options) 11 12url_login = "https://login.bizmanager.yahoo.co.jp/login" 13browser.get(url_login) 14print("ログインページにアクセスしました") 15 16e = browser.find_element_by_id("user_name") 17e.clear() 18e.send_keys(USER) 19e = browser.find_element_by_id("password") 20e.clear() 21e.send_keys(PASS) 22 23frm = browser.find_element_by_xpath("/html/body/div[2]/div/div[1]/form/table/tbody/tr[3]/td[2]/input") 24frm.submit() 25print("情報を入力してログインボタンを押しました") 26

試したこと

ブラウザや、htmlから取得するソースを変更したりしてみましたが効果がありませんでした。自分で色々なサイトを見てみましたがよく分かりませんでした。

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

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

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

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

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

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

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

aki_sasaki

2019/08/29 08:36

ご指摘ありがとうございます。修正いたしました。
Orlofsky

2019/08/29 08:39

わたしの載せたURLを読みましたか? 修正しては?って書きましたが、削除しろとは書いていませんよ。
guest

回答2

0

最近は、invisible reCaptchaのように、人間が操作しているかどうかを裏で判定するようなコードが存在します。

このようなものは、そもそも機械的操作を防ぐために入れてあるので、突破する方法は公になってはいません(し、対策されることも考えられます)。

投稿2019/08/29 08:25

maisumakun

総合スコア145121

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

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

aki_sasaki

2019/09/02 08:37

そういうことでしたら今すぐ解決するのは厳しそうですね、、、 ありがとうございます。
guest

0

ヒント

細かい部分はおいといて,
それぞれの行の意味は理解しているでしょうか?(一応確認)

各Webページの構造は,HTMLというマークアップ言語で記述されます.上記のコードで,HTMLの記述の中でログインに関連する部分を探し,操作することで,ログイン処理を行っているはずです

ログインフォームへの入力は成功しているが,ページ遷移が成功しない,とのことなので,
記述が間違っているとすればここでしょう

python

1frm = browser.find_element_by_xpath("/html/body/div[2]/div/div[1]/form/table/tbody/tr[3]/td[2]/input") 2frm.submit()

怪しいのはXPathの記述です
実際,目的のページ(https://login.bizmanager.yahoo.co.jp/login)において,body直下のdiv要素は1つしかないので,/html/body/div[2]...の時点で間違っていることが分かります

なぜ,そうだと言えるのかが分からない場合は,以下を参考にしてください

また,読んでもわからなかった場合は,どこまでは理解できたのか,どこでつまずいたのかを追記すると,より答えやすい質問になるかと思います

投稿2019/08/29 09:03

liveasnotes

総合スコア1284

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

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

aki_sasaki

2019/09/02 08:36

詳細にご回答いただきありがとうございます。 こちらでも調べてみます。 それでも分からなったらまたご連絡させていただきます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問