Я понимаю, что регулярное выражение - это подход бедного человека к работе с beautifulsoup, но мне было интересно, является ли это моим единственным вариантом, если в html-файле я не пытаюсь разобрать теги с четкими тегами?Beautifulsoup parse через плохие теги
Я в конечном счете, просто пытаюсь получить некоторые простые данные из 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 из этих таблиц, каждая из них имеет метку (например, стоимость, Vendor, On-Hand), который сидит в первой ячейке, а затем данные, которые я на самом деле want всегда находится в следующей ячейке.
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)
Это работает достаточно хорошо, чтобы найти правильную ячейку с ярлыком в нем ... Я в основном просто нужно найти следующую ячейку над теперь я думаю. «Следующая» команда в документации beautifulsoup на самом деле не справляется с этим. Любые мысли?
Да, вы можете использовать 'BeautifulSoup'. Но я не подозреваю, что это тот ответ, который вы хотите. Вы можете немного уточнить вопрос? –
Что уникально в данных, которые вы хотите? Всегда ли это во второй ячейке первой строки таблицы? Каждый раз текст начинается с определенного текста? Невозможно сказать BeautifulSoup или любому другому парсеру HTML, какие данные извлекать без такой информации. – Acorn
BeautifulSoup позволяет получить набор таблиц и набор строк для каждой таблицы в нескольких строках кода. Получение «ЧАСТИ № (// ЭТО, ЧТО Я ХОЧУ)» тоже довольно легко. Предоставьте некоторый образец, который вызывает проблему. – Kirill