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

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

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

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

Q&A

解決済

1回答

5114閲覧

改行している文字列のスクレイピング方法について

shunsuke1937

総合スコア48

Python 3.x

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

0グッド

1クリップ

投稿2018/08/16 11:38

やりたいこと

pythonでスクレイピングを行う際の改行している文字のスクレイピングを行いたいと
思っております。

CSS

1<table> 2<div class="contentsFrame1_inner"> 3 4 <tr> 5 <td class=" is-lineH2" rowspan="4"> 6 54 7 <br>11.77 8 <br>30.77 9 </td> 10 </tr> 11 </div> 12 </table>

上記のように構成されており、(長いので省略しております)
これのスクレイピングを行う為に、下記のコードを書きました。

python

1from bs4 import BeautifulSoup 2import requests 3import pandas as pd 4from pandas import Series,DataFrame 5 6NF=[] 7url = 'aaaa' 8result = requests.get(url) 9c = result.content 10soup = BeautifulSoup(c,'lxml') 11summary = soup.find('div',{'class':'contentsFrame1_inner'}) 12table = summary.find_all('table') 13rows = table[1].find_all('tr') 14for tr in rows: 15 cols = tr.find_all('td',{'class':'is-lineH2'}) 16 for td in cols: 17 text = td.find(text=True) 18 NF.append(text) 19

上記でコードを書いたところ、

<td class=" is-lineH2" rowspan="4"> 54 <br>11.77 <br>30.77 </td> </tr> '54'はリストに入っておりましたが、 <br>で区切られている '11.77' '30.77' についてはリストに入っておりませんでした。 そこで、<br>の箇所までスクレイピングを行う方法をご教示いただけますでしょうか? よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

こんな感じですかね。

html

1<td class=" is-lineH2" rowspan="4"> 2 54 3 <br>11.77 4 <br>30.77 5</td>

Python

1from bs4 import BeautifulSoup 2 3with open('sample.html') as fin: 4 soup = BeautifulSoup(fin.read(), 'lxml') 5 6NF = [] 7for td in soup.find_all('td'): 8 NF += td.text.split() 9 10print(NF)

実行結果

['54', '11.77', '30.77']

できるだけミニマムな例にしてみました。

投稿2018/08/16 13:54

LouiS0616

総合スコア35660

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

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

shunsuke1937

2018/08/16 23:09

ご回答ありがとうございます。 上記の例は、<td>...</td>で区切られている 箇所を全て抜き出しているというイメージでしょうか?
LouiS0616

2018/08/17 23:25

そうです。 今回の例の場合は、全てと言っても一つだけですが。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問