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

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

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

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

Q&A

解決済

2回答

507閲覧

htmlのタグ抽出(Python)について

newcommerA

総合スコア5

Python 3.x

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

0グッド

0クリップ

投稿2020/02/27 08:34

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
抽出したいテキスト情報をすべて取得した

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

サンプルのソースコードで実行したら、1個しか取得してできませんでした。
ご教示をお願いします。
エラーメッセージ

### 該当のソースコード ```ここに言語名を入力 ソースコード from bs4 import BeautifulSoup html=""" <div class=“content”> <p>abc</p> <p>def</p> </div> """ soup=BeautifulSoup(html,"html.parser") divs=soup.find_all('div') texts=[x.find('p').text for x in divs] print(''.join(texts)) print(soup.find_all('p')) print(texts) ### 試したこと 結果は以下の通りでした。 abc [<p>abc</p>, <p>def</p>] ['abc'] ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

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

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

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

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

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

quickquip

2020/02/27 08:37

質問(というかわからないこと)が書いてありませんが。
newcommerA

2020/02/27 08:42

tag'p'の抽出すべきテキスト情報print(soup.find_all('p'))で確認できているのに、print(texts)では最初のテキスト情報しかありません。どうしてなのでしょうか?
guest

回答2

0

ベストアンサー

複数の要素を取得したい場合は「find_all()」を使いましょう。

Python

1from bs4 import BeautifulSoup 2 3html=""" 4<div class=“content”> 5<p>abc</p> 6<p>def</p> 7</div> 8""" 9 10soup=BeautifulSoup(html,"html.parser") 11divs=soup.find_all('div') 12texts = [p for div in divs for ps in div.find_all('p') for p in ps] 13 14print(''.join(texts)) 15#abcdef 16print(soup.find_all('p')) 17#[<p>abc</p>, <p>def</p>] 18print(texts) 19#['abc', 'def'] 20

投稿2020/02/27 11:16

meg_

総合スコア10579

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

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

newcommerA

2020/03/02 00:43

理解できました。ありがとうございました。助かりました。
guest

0

Python

1texts=[x.find('p').text for x in divs]

findは最初の1件しか取れないはずです。

投稿2020/02/27 08:52

meshi_s

総合スコア276

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問