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

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

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

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Python 3.x

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

selenium

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

Q&A

解決済

1回答

474閲覧

python Selenium bs4 webdriverで値を取得出来ない件

hit701

総合スコア148

Beautiful Soup

Beautiful Soupは、Pythonのライブラリの一つ。スクレイピングに特化しています。HTMLデータの構文の解析を行うために、HTMLタグ/CSSのセレクタで抽出する部分を指定することが可能です。

Python 3.x

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

selenium

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

0グッド

0クリップ

投稿2020/01/25 03:41

お世話になります。

pythonであるWEBサイトの値をselenium webdriverにて値を取得したいのですが、デバッグでは値を取得出来ますが、RUNさせると値を取得出来ません。コードは下記の通りです。
使用ブラウザは、chrome, webdriverもchrome用に用いています。
Webdriverは最新のブラウザに合わせています。

python

1from bs4 import BeautifulSoup 2import requests 3from selenium import webdriver 4from selenium.webdriver.support.ui import Select 5import time 6 7w = "f4" 8url = 'https://www.xxx.com/item/item_no1.html' 9driver = webdriver.Chrome(executable_path="chromedriver.exe") 10driver.get(url) 11time.sleep(1) 12element = driver.find_element_by_name("FormModel.VariationGenpinId") 13select_w = Select(element) 14select_.select_by_visible_text(w) 15html = driver.page_source 16# print(html) 17soup = BeautifulSoup(html, "lxml") 18# print(soup) 19

上記のプログラムで、デバッグ実行させたところ、取得したい「カートに入れる」が、デバッグモードでは取得出来ますが、Runされるとsoupで取得出来ませんでした。
RUNで、print(html)では、「カートに入れる」が表示さますが、print(soup)では、「カートに入れる」が取得出来ませんでした。

どのようにしたら、RUNで取得できる様になるのか教えて頂きたいです。
ご指導のほど、よろしくお願いします。

敬具

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

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

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

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

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

shirai

2020/01/25 15:54

エラーは出ていますか?
hit701

2020/01/26 01:18

ご返信ありがとうございます。 エラーは出ておりません。
guest

回答1

0

自己解決

解決しました.

python

1select_width.select_by_visible_text(w) 2time.sleep(1) 3html = driver.page_source 4

time.sleep(1)を追加することで、期待していた値を含む文字列を取得できました。

投稿2020/01/26 02:05

hit701

総合スコア148

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問