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

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

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

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

selenium

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

Q&A

解決済

1回答

2639閲覧

WEBスクレイピング 値を取得できない python

tsuru0508

総合スコア65

Python 3.x

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

selenium

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

0グッド

0クリップ

投稿2022/05/01 23:53

編集2022/05/02 00:10

いつもお世話になっております。
いつもはphpやbootstrapでお世話になっております。
pythonは初心者です・・・

困ったこと:欲しい値が取得できない
(取得出来てないのか、取得できているけどプリント
できていないのかもわかっていません)

取得したいところのxPathは、chromeのF12の画面で
要素をハイライトして、コピーで完全なxPathを取得を
行い、それをペーストしております。

どなたかヒントでも頂けませんか?
何を調べていいかわからなくなっております。
どうぞよろしくお願いします。

Python 3.7.9 です。

★追記
該当のページは、ログイン後、モーダルの画面が表示されます。
モーダルを消すことができないので、そのまま取得を試みています。

# coding: UTF-8 from time import sleep from bs4 import BeautifulSoup from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys if __name__ == '__main__': # URL関連 url = 'https://*********' login = '****@****' password = '*******' # ヘッドレスモードの設定。 options = Options() #options.add_argument('--headless') options.add_experimental_option('excludeSwitches', ['enable-logging']) # Chromeを起動 driver = webdriver.Chrome(executable_path="C:\py-mssp\chromedriver.exe", options=options) # ログインページを開く driver.get(url) # ログオン処理 driver.find_element_by_name("identifier").send_keys(login) driver.find_element_by_name("password").send_keys(password) driver.find_element_by_id("doLogin").send_keys(Keys.ENTER) # ブラウザの描写が完了させるためにsleep sleep(10) a = driver.find_element_by_xpath("/html/body/div[1]/div[3]/div[3]/div[2]/div/div[4]/div[1]/div[3]/span") print("here") print(a.text) print("there") # ドライバーをクローズ driver.close() driver.quit()

イメージ説明

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

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

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

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

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

guest

回答1

0

ベストアンサー

ログイン後の HTML が Web ブラウザで表示した場合と異なっているのではないかと思いますので、まずは、

sleep(10)

の後に

print(driver.page_source)

を追加して実行して、selenium が取得した HTML ソースを画面に表示して確認しましょう。

Webブラウザで表示された HTML と selenium が取得した HTML を比較して、同じHTML か確認しましょう。
異なる部分があればどこが異なるのか調べて必要な対応を考えましょう。

投稿2022/05/02 00:56

編集2022/05/02 00:56
CHERRY

総合スコア25171

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

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

tsuru0508

2022/05/02 01:36

CHERRYさん、ありがとうございます。 まずは、ご指示の通り、チェックしてみます。
tsuru0508

2022/05/02 02:30

ご報告です。 print(driver.page_source) で、ソースみて、予想通りでした。 でも、xPathだと、うまく値を取得できなかったので、下記に変えたところ、うまく取得できました。 a = driver.find_element_by_css_selector(selectorはgoogleのF12で取得) 過去も同様のコードにしていたつもりですが、多分 element s ←のせいで取得できなかったんだと思います。 お蔭様で、人生初めてのWEBスクレイピングを経験できました。 次のステップに進めます。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問