私は、robobrowserでフォームを送信した後、ウェブサイトを解析しようとするウェブスクレイピングが初めてです。正しいデータが返されます (実行すると表示できます: print(browser.parsed)) が、解析に問題があります。Web ページのソース コードの関連部分は次のようになります。
<div id="ii">
<tr>
<td scope="row" id="t1a"> ID (ID Number)</a></td>
<td headers="t1a">1234567 </td>
</tr>
<tr>
<td scope="row" id="t1b">Participant Name</td>
<td headers="t1b">JONES, JOHN </td>
</tr>
<tr>
<td scope="row" id="t1c">Sex</td>
<td headers="t1c">MALE </td>
</tr>
<tr>
<td scope="row" id="t1d">Date of Birth</td>
<td headers="t1d">11/25/2016 </td>
</tr>
<tr>
<td scope="row" id="t1e">Race / Ethnicity</a></td>
<td headers="t1e">White </td>
</tr>
私が行った場合
in: browser.select('#t1b")
私は得る:
out: [<td id="t1b" scope="row">Inmate Name</td>]
JONES、JOHNの代わりに。
関連データを取得できた唯一の方法は、次のことです。
browser.select('tr')
これにより、テキストに変換して関連情報を検索できる各 'tr' を含む 29 のそれぞれのリストが返されます。
BeautifulSoup オブジェクトの作成も試みました。
x = browser.select('#ii')
soup = BeautifulSoup(x[0].text, "html.parser")
しかし、すべてのタグ/IDが失われるため、その中を検索する方法がわかりません。
文字列変数に繰り返し変換して検索するのとは対照的に、「tr」を使用して各要素をループし、ラベルではなく実際のデータを取得する簡単な方法はありますか?
ありがとう