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

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

新規登録して質問してみよう
ただいま回答率
85.48%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python 3.x

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

414閲覧

PythonでJavascriptが用いられているサイトからClassの要素をスクレイピングしたい

poohpooh

総合スコア1

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

Python 3.x

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2022/07/13 12:01

前提

Pythonにて、ウェブスクレイピングを実施したいと思っています。
スクレイピングしたいサイトがJavaを利用しているので、seleniumをChromeを用いた方法が良いかと思い試行錯誤しているのですが、Classの指定がうまくできていないようです。

実現したいこと

Webサイトの該当のClassに入っている文字列を抽出したい
このサイトのUnavailableという単語を抜き出したいです。

このサイトのUnavailableという単語を抜き出したいです。

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

エラーメッセージは出ていません。が要素も抜き出せていません。

該当のソースコード

Python

1import time # スリープを使うために必要 2from selenium import webdriver # Webブラウザを自動操作 3from selenium import webdriver 4import chromedriver_binary # パスを通すためのコード 5 6driver = webdriver.Chrome() # Chromeを準備 7 8# HTMLを開く 9driver.get('https://app.ens.domains/search/paypay') # Googleを開く 10 11def ranking(driver): 12 # class_name = 'css-0' # class属性名 13 class_elems = driver.find_elements_by_css_selector('div.css-0 e1736otp6') # classでの指定 14 15 # 取得した要素を1つずつ表示 16 for elem in class_elems: 17 print(elem.text) 18 19ranking(driver) 20driver.quit() # ブラウザを閉じる``` 21 22### 試したこと 23 24この他に、BeautifulSoupを用いた方法も試しましたが403エラーがでたので、Headersを挿入する方法を試みましたが、わかりませんでした…

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

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

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

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

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

guest

回答1

0

'div.css-0 e1736otp6'

は、例えば、

HTML

1<div class="css-0"><e1736otp6>~~~</e1736otp6></div>

というようなHTMLの<e1736otp6>というタグを指定しています。こういうタグがあるとは思えないので、

HTML

1<div class="css-0 e1736otp6">~~</div>

というdivタグを指定したいということでは?
その場合は、つなげて書きます。'div.css-0.e1736otp6'です。

投稿2022/07/13 12:31

otn

総合スコア84555

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

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

poohpooh

2022/07/14 00:13

ありがとうございます! <div class="css-0 e1736otp6">Unavailable</div> まさにそうでしたので、記載を修正しました。 がこれでは chromedriver 0x00000001017b9f5f chromedriver + 4378463 というような値が抽出されるだけで、上記の Unavailableというワードが抽出できません… また、サイトのコードを見ても'div.css-0.e1736otp6'は1度しか使われていないのにも関わらず上記のchromdriverがアウトプットとして15回程度出てきてしまします…
otn

2022/07/14 13:05

webdriverが起動する時にいろいろ警告メッセージが出ますが、それを勘違いしているのでは? 表示がわかりにくければ、ranking(driver) の直前に20秒くらいのスリープを入れてみては?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問