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

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

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

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

Python 3.x

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

Q&A

2回答

2240閲覧

Python スクレイピングで抽出した</br>の文字列を<li>に変換する方法

RWW

総合スコア13

スクレイピング

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

Python 3.x

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

0グッド

1クリップ

投稿2018/06/07 06:18

編集2018/06/07 07:56

PYthonを使いスクレイピングをし。テキストを抽出した際に下記のようなコードの変換を行いたいのですが
方法がわかりません。ご教授いただけると幸いです。

HTML

1<dic class = "class"> 2aaaa<br/>bbb<br/>ccc<br/>ddd 3</div>

HTML

1<li>aaa</li> 2<li>bbb</li> 3<li>ccc</li> 4<li>ddd</li>

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

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

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

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

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

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

guest

回答2

0

註: 編集前の質問に対する回答です。
ぱっと思いつくのは正規表現ですかね。

Python

1import re 2 3html = """\ 4aaaa<br/> 5bbb<br/> 6ccc<br/>\ 7""" 8 9html = re.sub(r'^(.*)<br/>', r'<li>\1</li>', html, flags=re.MULTILINE) 10print(html)

実行結果 Wandbox

<li>aaaa</li> <li>bbb</li> <li>ccc</li>

投稿2018/06/07 06:27

編集2018/06/07 07:55
LouiS0616

総合スコア35660

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

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

RWW

2018/06/07 07:55

ありがとうございます!確かにこのコードでしたら、解決します。 私の質問内容が悪かったのでコードを修正いたしましたので、もしよろしかったら上記の場合だと、どうなるのかご教授いただければと思います。 また、htmlのコードもスクレイピングをして抽出しているので変数に入っています。 このような場合だとお答え頂いた、「"""\ 〜 \"""」のところはどのようにすればよろしいのでしょうか?
LouiS0616

2018/06/07 08:00

動作するスニペットを提示するために、適当に変数htmlを初期化しただけです。 変数に格納された時点で、その値がもともとどこから持ってこられたかは無視できます。
LouiS0616

2018/06/07 08:33

また、『上記の場合』がちょっと曖昧なので、どのようにお答えすればいいのかよくわかりません。 どんな条件を満たしているときに置換を行いたいのか、もう少し詳しく質問文に記載してください。
RWW

2018/06/07 08:47

失礼いたしました。 <class>に挟まれており、テキストが改行されておらず一行で記載されている場合です。
LouiS0616

2018/06/07 10:06

スクレイピングにはどのようなライブラリを使っていますか。
guest

0

文字を抽出してからliタグを作成後文字追加
https://www.crummy.com/software/BeautifulSoup/bs4/doc/#navigablestring-and-new-tag

python

1from bs4 import BeautifulSoup 2 3html = """ 4<div class = "class"> 5aaa<br/>bbb<br/>ccc<br/>ddd 6</div> 7""" 8 9soup = BeautifulSoup(html, 'html.parser') 10 11# text抽出 12brs = [text for text in soup.div.stripped_strings] 13print(brs) 14 15# 空のHTML作成 16new_html = BeautifulSoup('', 'html.parser') 17 18tag = new_html 19 20for br_string in brs: 21 22 li_tag = tag.new_tag('li') 23 li_tag.string = br_string 24 tag.append(li_tag) 25 26print(new_html)

投稿2018/06/07 13:39

barobaro

総合スコア1286

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問