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

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

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

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

Python 3.x

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

selenium

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

Q&A

解決済

1回答

1755閲覧

スクレイピングでクリックしないと出てこないタグの指定方法について

mi2

総合スコア63

Beautiful Soup

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

Python 3.x

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

selenium

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

0グッド

0クリップ

投稿2019/05/09 07:19

編集2019/05/09 07:19

前提・実現したいこと

seleniumとbeautifulsoupを併用してスクレイピングを行っております。
クリックして名前が表示される箇所からスクレイピングしたいのですが、
うまく出来ずに悩んでおります。

試したこと

# pass driver = webdriver.Chrome(<pass省略>) # open driver = webdriver.Chrome() # get driver.get('https://www.ktm.com/jp/') # get HTML html = driver.page_source # close driver.close() # BeautifulSoup soup = BeautifulSoup(html, 'html.parser') # tag t = soup.find_all(class_ = 'canvas')

やりたいこと

elementsに<a class="roman-nav" href="/jp/mx/450-sx-f-herlings-replica/">450 SX-F Herlings Replica</a>というのが現れるため、タグについてのテキスト取得で名前を取得すればよいと考えておりましたが、tには現れてきませんでした。

替わりにjsonのような形式で名前が現れてきまして、孫オブジェクトの "name": の位置に取得したい名前があることがわかりました。

この名前を取得するにはどのように操作したらよいでしょうか。

よろしくお願い致します。

環境

python3.6.5
(anacondaにて構築)

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

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

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

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

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

guest

回答1

0

ベストアンサー

該当URLを張ってください。実際に見た方が早いです。
いまいち質問内容が要領を得ていませんが、推測で回答します。

「クリックしないと出てこない」っていうのは、display:none;になっているのですか?それとも、Ajaxか何かで動的に表示されるのですか?もし前者なら、何も考えずに取得できるはずです。後者なら、seleniumにクリックさせて、webdriverwaitを使って、特定の要素が現れるのを待ちましょう。

投稿2019/05/09 07:30

yamato_user

総合スコア2321

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

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

mi2

2019/05/13 02:25 編集

ありがとうございます。
yamato_user

2019/05/09 07:42

後者ですね。seleniumにクリックさせて、webdriverwaitを使って、特定の要素が現れるのを待ちましょう。その後、通常の指定方法で指定できます。
otolab

2019/05/10 01:50

html = driver.page_source でコードだけ取得しているような気がするのですが、javascriptで動的に作成されるDOMの要素は入ってますかね? BeautifulSoupはjavascriptを考慮しない静的な解析しかできないはずなので、基本的にこのケースでの利用は不適当な気がします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問