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

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

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

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1162閲覧

beautifulsoupでtheadの書き換え

DaichiYasuda

総合スコア173

Python 3.x

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

3クリップ

投稿2017/12/10 15:36

pythonでhtmlの解析をしています。
beautifulsoupでhtmlを取得してtableタグのみ取得しました。

talbeタグ(googledocのリンク)

現状は下記のようになっていますが、このtheadタグを削除したいです。

html

1[<table class="pro-table pro-table02 mb5 tableCross_1"> 2<thead> 3<tr> 4<th class="w7p" rowspan="2"> </th> 5<th class="w5p" rowspan="2">合計</th> 6<th colspan="9">内訳</th> 7<th class="w5p area-disabled" rowspan="2"><a class="gonFloat8 cboxElement" href="#print">地図・クーポン印刷</a></th> 8<th class="w5p area-disabled" rowspan="2">チョットぐに追加</th> 9<th class="w5p area-disabled" rowspan="2">口コミ</th> 10<th class="w5p area-disabled" rowspan="2">お店のブログ</th> 11</tr> 12<tr> 13<th class="w5p">店舗トップ</th> 14<th class="w5p"><a class="gonFloat cboxElement" href="#menu">メニュー</a></th> 15<th class="w5p"><a class="gonFloat5 cboxElement" href="#seat">席・個室・貸切</a></th> 16<th class="w5p"><a class="gonFloat2 cboxElement" href="#photo">写真</a></th> 17<th class="w5p">こだわり</th> 18<th class="w5p"><a class="gonFloat7 cboxElement" href="#map">地図</a></th> 19<th class="w5p">クーポン</th> 20<th class="w5p"><a class="gonFloat3 cboxElement" href="#yoyaku">予約</a></th> 21<th class="w5p"><a class="gonFloat6 cboxElement" href="#other">その他</a></th> 22</tr> 23</thead>

theadを削除して1列目に下記の内容を追加したいです。

html

1 <td></td> 2 <td>合計</td> 3 <td>店舗トップ</td> 4 <td>メニュー</td> 5 <td>席・個室・貸切</td> 6 <td>写真</td> 7 <td>こだわり</td> 8 <td>地図</td> 9 <td>クーポン</td> 10 <td>予約</td> 11 <td>その他</td> 12 <td>地図・クーポン印刷</td> 13 <td>チョットぐに追加</td> 14 <td>口コミ</td> 15 <td>お店のブログ 16 </td>

最終的なtableタグの中身

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

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

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

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

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

guest

回答1

0

ベストアンサー

extract() を利用するとツリーからタグや文字列を除去できます。

new_tag() を利用すると新しいタグを生成できます。

insert() を利用すると要素の挿入ができます。

これらを組み合わせると、例えば、以下のようにして thead の部分を <tr><td>test</td></tr> に書き換えできます。

thead = soup.thead.extract() tables = soup.table tr = tables.find('tr') tr_tag = soup.new_tag('tr') td_tag = soup.new_tag('td') td_tag.string = 'test' tr_tag.insert(1, td_tag) tr.insert(1, tr_tag)

投稿2017/12/10 17:07

ykws

総合スコア1236

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

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

DaichiYasuda

2017/12/11 14:25

extract こんな便利なものがあったんですね! 大変助かりました、ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問