コード書いてみました。
Python+BeautifulSoup4の例です。
- .textを用いる場合
.stringではなく.textを用いれば、期待する出力は得られるようです。
- unwrap()を用いてsup要素を削除
unwrap()を用いれば、要素の削除ができるようです。
Python
1from bs4 import BeautifulSoup
2
3# テスト用のHTML
4html = """
5<a>15m<sup>2</sup></a>,
6<a>100kg</a>
7"""
8
9#
10# .textで取得する方法
11#
12# soup = BeautifulSoup(html) と書いたらWarningが出るため下記コードにする
13soup = BeautifulSoup(html, 'lxml')
14
15a_elements = soup.find_all('a')
16print(a_elements[0].text)
17# Output: 15m2
18print(a_elements[1].text)
19# Output: 100kg
20
21#
22# unwrapを用いた場合
23#
24# soup_unwrap = BeautifulSoup(html) と書いたらWarningが出るため下記コードにする
25soup_unwrap = BeautifulSoup(html, 'lxml')
26
27# unwrap処理
28for element in soup_unwrap.find_all('sup'):
29 element.unwrap()
30
31a_elements_unwrap = soup_unwrap.find_all('a')
32print(a_elements_unwrap[0].text)
33# Output: 15m2
34print(a_elements_unwrap[1].text)
35# Output: 100kg
36
37#
38# 参考
39#
40print(a_elements)
41# Output: <a>15m<sup>2</sup></a>, <a>100kg</a>]
42print(a_elements[0])
43# Output: <a>15m<sup>2</sup></a>
44print(a_elements[1])
45# Output: <a>100kg</a>
46
47print(a_elements_unwrap)
48# Output: [<a>15m2</a>, <a>100kg</a>]
49print(a_elements_unwrap[0])
50# Output: <a>15m2</a>
51print(a_elements_unwrap[1])
52# Output: <a>100kg</a>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/11 09:47