Насколько я понимаю, регулярное выражение - это подход бедного человека к работе с Beautifulsoup, но мне было интересно, если это единственный вариант, если в html, который я пытаюсь разобрать, нет четко определенных тегов?
В конечном итоге я просто пытаюсь получить некоторые простые данные из HTML ... но это всего лишь серия таблиц, которые выглядят так:
<table width="733" border="0" cellpadding="2">
<tr>
<td align="right" valign="top" nowrap="nowrap" bgcolor="#29ff36">
<font size="-1" face="Verdana, Arial, Helvetica, sans-serif">
<strong>
PART CODE:
</strong>
</font>
</td>
<td align="left" valign="top" nowrap="nowrap">
<font size="-1" color="#7b1010" face="Verdana, Arial, Helvetica, sans-serif">
PART# (//THIS IS WHAT I WANT)
</font>
</td>
<td>
</td>
Есть ли хороший способ приблизиться к этому без регулярных выражений?
Спасибо за помощь, ребята. Этот сайт невероятен
OK
Существует около 15 таких таблиц, каждая из которых имеет метку (например, «Стоимость», «Поставщик», «В наличии»), которая находится в первой ячейке, а затем данные, которые мне действительно нужны, всегда находятся в следующей ячейке.
label = 'Price:'
rows = soup.findAll('tr')
for tr in rows:
cols = tr.findAll('td')
for td in cols:
if td.find(text=True) == label:
print td.find(text=True)
Это работает достаточно хорошо, чтобы найти правильную ячейку с меткой в ней ... Мне просто нужно найти следующую ячейку сейчас, я думаю. Команда «next» в документации по Beautifulsoup на самом деле не выполняет этого.
Есть мысли?