正規表現はbeautifulsoupを扱う貧しい人のアプローチですが、htmlによく定義されているタグが解析されない場合は、私の唯一の選択肢かどうか疑問に思っていましたか?Beautifulsoupタグが悪いタグを解析する
私は最終的にはちょうど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これらのテーブルのありますそれぞれが最初のセルに座っている(例えばオンハンドコスト、ベンダー、など)のラベルを持ち、その後、実際にIデータ常に次のセルに欲しいです。それにラベルを持つ正しいセルを見つけることが十分に機能
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'を使うことができます。しかし、私はそれがあなたが望む答えだとは思わない。少し質問を明確にすることはできますか? –
あなたが望むデータはユニークですか?それは常にテーブルの最初の行の2番目のセルにありますか?テキストは毎回特定のテキストで始まっていますか? BeautifulSoupやその他のHTMLパーサーに、そのような情報なしに抽出するデータを指定する方法はありません。 – Acorn
BeautifulSoupでは、数行のコードでテーブルのセットと各テーブルの行セットを取得できます。 「パート#(私はこれが何を望んでいるか)」を取得するのもかなり簡単です。問題の原因となるサンプルを提供してください。 – Kirill