BeautifulSoup 4 - 将两个col表解析为字典

时间:2013-06-16 07:25:10

标签: python beautifulsoup

我正在使用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'

1 个答案:

答案 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)