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

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

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

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

selenium

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

Q&A

解決済

2回答

420閲覧

python × seleniumで複数の要素を並び順をそのままにして取得し、リストに格納する方法

hokkaido

総合スコア11

Python

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

selenium

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

0グッド

0クリップ

投稿2022/09/14 15:27

前提

実現したいこと

こんなHTMLがある時に
A,Bを上から順にリストに格納したいです

html

1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <title>Document</title> 7</head> 8<body> 9 <div class="A"> 10 11 <div class="B"> 12 13 <div class="A"> 14 15 <div class="D"> 16 17 <div class="C"> 18 19 <div class="A"> 20 21 <div class="B"> 22</body> 23</html>

要素A,要素Bのみを取り出し、listに格納します
list = [A,B,A,A,B] 〇
list = [A,A,A,B,B] ✕

〇のリストにしたいです

試したこと

・検索→あまり参考になるものを見つけることができなかった

こうしたら上手くいくかと考えましたが「該当する要素はない」と言われてしまいました

python

1A = driver.find_elements_by_css_selector('div.A', 'div.B') 2 3for i in A: 4 print(A.text)**ボールドテキスト**

環境

windows 11
Python 3.9.12
selenium 3.141.0

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

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

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

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

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

guest

回答2

0

ベストアンサー

・検索→あまり参考になるものを見つけることができなかった

CSSセレクターの書き方はいくらでも情報があると思いますが。「CSSセレクター 基本」あたりで検索。ピンポイントで「CSSセレクター または」でも良いかも。
「または」は,で区切ります。

Python

1driver.find_elements_by_css_selector('div.A,div.B')

投稿2022/09/14 16:16

otn

総合スコア84559

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

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

hokkaido

2022/09/15 12:14

回答していただきありがとうございます 記述していただいたコードを実行したら上手く動いてくれました 加えて検索の仕方まで教えていただきありがとうございます(o_ _)o))
otn

2022/09/15 13:53

まず、「自分の知りたいのは、CSSセレクターの書き方である」ということがわからないことには、検索できないですね。
guest

0

Selenium ではなく BeautifulSoup の場合。

python

1from bs4 import BeautifulSoup 2 3html = ''' 4<!DOCTYPE html> 5<html lang="ja"> 6<head> 7 <meta charset="UTF-8"> 8 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 9 <title>Document</title> 10</head> 11<body> 12 <div class="A"> 13 <div class="B"> 14 <div class="A"> 15 <div class="D"> 16 <div class="C"> 17 <div class="A"> 18 <div class="B"> 19</body> 20</html> 21''' 22 23soup = BeautifulSoup(html, 'html.parser') 24elems = soup.select('div.A, div.B') 25lst = [e['class'][0] for e in elems] 26 27print(lst) 28 29# 30['A', 'B', 'A', 'A', 'B']

投稿2022/09/14 16:00

編集2022/09/14 16:09
melian

総合スコア19805

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

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

hokkaido

2022/09/15 12:15

回答していただきありがとうございます 今回はseleniumで要素を取得したかったのですが、 BeautifulSoupでもこのようなやり方があるのですね、参考になりました BeautifulSoupを使って情報を取得するときはぜひ使ってみたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問