2

我正在使用 BeautifulSoup 4

我有一个大页面要解析,但我需要找到该部分

soup.findAll('h2', text='案例详情')

我想创建以下对象

详细信息 = {'Court:':'nysb'}

如何找到该部分,然后遍历下一个表,该表是一个双列表,并将第一个列作为哈希中的键,第二个列作为值?

<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'
4

1 回答 1

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)and''.join(cells[1].stripped_strings)代替。

于 2013-06-16T07:35:25.160 回答