回答編集履歴
2
d
test
CHANGED
@@ -14,21 +14,19 @@
|
|
14
14
|
|
15
15
|
from bs4 import BeautifulSoup
|
16
16
|
|
17
|
-
from bs4.element import Tag
|
18
|
-
|
19
17
|
|
20
18
|
|
21
19
|
html = "<b>あいうえお</b><i>かきくけこ<b>さしすせそ</b></i>"
|
22
|
-
|
23
|
-
|
24
20
|
|
25
21
|
soup = BeautifulSoup(html)
|
26
22
|
|
27
23
|
|
28
24
|
|
25
|
+
def traverse(node, weight):
|
29
26
|
|
27
|
+
# b タグまたは i タグが見つかった場合、重みを加算して、
|
30
28
|
|
31
|
-
|
29
|
+
# 名前を現在の重みで置き換える。
|
32
30
|
|
33
31
|
if node.name == "b":
|
34
32
|
|
@@ -43,6 +41,8 @@
|
|
43
41
|
node.name = str(weight)
|
44
42
|
|
45
43
|
|
44
|
+
|
45
|
+
# ノードが子を持つ場合
|
46
46
|
|
47
47
|
if hasattr(node, "children"):
|
48
48
|
|
1
d
test
CHANGED
@@ -58,6 +58,8 @@
|
|
58
58
|
|
59
59
|
print(soup)
|
60
60
|
|
61
|
-
# 2>あいうえお</2><1>かきくけこ<3>さしすせそ</3></1>
|
61
|
+
# <2>あいうえお</2><1>かきくけこ<3>さしすせそ</3></1>
|
62
|
+
|
63
|
+
# もし、<> を [] にしたい場合、正規表現による置換などの後処理を行ってください。
|
62
64
|
|
63
65
|
```
|