2

BeautifulSoup 4を使用しています

解析する大きなページがありますが、セクションを見つける必要があります

soup.findAll('h2', text='ケースの詳細')

次のオブジェクトを作成したい

詳細 = {'裁判所:':'nysb'}

セクションを見つけて、2列テーブルである次のテーブルを反復処理し、最初の列をハッシュのキーとして、2番目の列を値として持つにはどうすればよいですか?

<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 に答える