我正在使用BeautifulSoup 4
我有一个要解析的大页面,但我需要找到
部分soup.findAll('h2',text ='案例详情')
我想创建以下对象
details = {'Court:':'nysb'}
如何找到该部分,然后迭代下一个作为双列表的表,并将第一个col作为哈希中的键,将第二个col作为值?
<body>
<h2>
Case details
</h2>
<table>
<tr>
<td>
<b>
Court:
</b>
</td>
<td>
nysb
</td>
</tr>
</table>
</body>
table = h2_details.find_next_sibling('table')
AttributeError: 'ResultSet' object has no attribute 'find_next_sibling'
答案 0 :(得分:3)
使用.find_next_sibling()
查找H2
标记后的表格,然后从那里获取该表格:
h2_details = soup.find('h2', text='Case details')
table = h2_details.find_next_sibling('table')
details = {}
for row in table.find_all('tr'):
cells = row.find_all('td', limit=2)
details[cells[0].string] = cells[1].string
我在这里使用.string
,假设每个表格单元格只包含文本(没有标记)。如果有标记,也许您想要使用''.join(cells[0].stripped_strings)
和''.join(cells[1].stripped_strings)
。