Я новичок в webscraping, пытаясь разобрать веб-сайт после отправки формы с помощью robobrowser. Я возвращаю правильные данные (я могу просмотреть его, когда я это сделаю: print (browser.parsed)), но у меня проблемы с его синтаксическим анализом. Соответствующая часть исходного кода веб-страницы выглядит следующим образом:Разбор веб-страницы с robobrowser и beautifulsoup
<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')
Это возвращает список каждого из 29 с каждой «тр», что я могу преобразовать в текст и искать соответствующая информация.
Я также попытался создать объект BeautifulSoup:
x = browser.select('#ii')
soup = BeautifulSoup(x[0].text, "html.parser")
но он теряет все теги/идентификаторами, и поэтому я не могу понять, как искать в ней.
Есть ли простой способ, чтобы он проходил через каждый элемент с помощью «tr» и получал фактические данные, а не ярлык, как противодействующие многократному преобразованию в строковую переменную и поиск по ней?
Благодаря
невероятно - спасибо так много! – MikeD