我正在尝试学习beautifulsoup来废弃HTML并遇到困难的挑战。 我试图废弃的HTML格式不好,而且由于缺乏对beautifulsoup的了解,我有点卡住了..
我想废弃的HTML如下所示
<table>
<tr>
<td><b>Value 1<b/>HiddenValue1</td>
<td>Value 2</td>
</tr>
<tr>
<td>NoValue</td>
</tr>
<tr>
<td><b>Value 3<b/>HiddenValue2</td>
<td>Value 4</td>
</tr>
</table>
所以我想要得到的结果是用两个td标签提取所有行。 这将提取第一个和最后一个tr。 一旦我得到它们,我需要安排这些td和b,然后将文本放入字典中。
我想要的结果是字典列表
[
{ tdb : 'Value 1', tdHidden : 'HiddenValue1', tdSecond : 'Value 2' },
{ tdb : 'Value 3', tdHidden : 'HiddenValue2', tdSecond : 'Value 4' },
]
我正在尝试使用findall()函数但不知道如何检查子项td标记的长度,也不知道如何导航到第一个td和第二个td ..
提前感谢您的帮助!
编辑:
请您帮忙解决如何获取&#34; GetThisValue&#34;和&#34;当前&#34;在td标签中?
<td align="left" valign="top">
<b>Value1</b>
<br>
<font>
<b>Current</b>
</font>
<br>
GetThisValue
</td>
答案 0 :(得分:1)
以下代码应该有效 -
trs = soup.find('table').find_all('tr')
trs = [tr for tr in trs if len(tr.find_all('td')) == 2]
results = []
for tr in trs:
tds = tr.find_all('td')
d = {
'tdb': tds[0].b.text,
'tdHidden': tds[0].b.next_sibling,
'tdSecond': tds[1].text
}
results.append(d)
答案 1 :(得分:0)
编辑部分的答案2 -
MyConstants.get("CONST_NAME");