2011-06-28 14 views
0

私はBeautifulSoupを使用して下に見られる2番目のテーブルを解析しようとしています。テーブルの属性がまったく同じであるため、2番目のテーブルと1番目のテーブルを区別するのが難しいです。名前= PATHWAYなどの表の情報にアクセスするにはどうすればよいですか?私は、テーブルにアクセスしようとするために、これまで使用してきたことは次のとおりです。HTML解析テーブル - BeautifulSoup

table = soup.find('table', {'name':'PATHWAY'}) 

私はテーブルが存在している知っているが、私は、「なし」の応答を受け取ります。私にとって、これは2つを区別する方法が機能していないことを意味します。助言がありますか?まず

<table border="0" cellspacing="0" cellpadding="0" bgcolor="#DCDCDC"> 
<tr><td> 

    <table border="0" cellspacing="1" cellpadding="3"> 
<tr> 
<td class=ue><a name="REACTION TYPE">REACTION TYPE</td><td class=ue>ORGANISM</td><td class=ue>COMMENTARY</td><td class=ue>LITERATURE</td></tr> 
<tr class=tr1> 
<td class=g>condensation</td><td class=no>-</td><td class=no>-</td><td class=no>-</td></tr> 
    </table> 
</td></tr></table> 
<br> 

<table border="0" cellspacing="0" cellpadding="0" bgcolor="#DCDCDC"> 
<tr><td> 


    <table border="0" cellspacing="1" cellpadding="3"> 
<tr> 
<td class=ue><a name="PATHWAY">PATHWAY</td><td class=ue>KEGG Link</td><td class=ue>MetaCyc Link</td><td class=ue></td></tr> 
    <table> 
+0

問題が解決しましたか? –

答えて

-1

table = soup.find('table' {'name':'PATHWAY'} 

には、適切なPythonコードではありません。

これはどのようなものですか?

これは一致します。

各単一テーブルを繰り返し処理し、各テーブル内で関連するチェックを実行するか、ツリーの各単一ノードを反復処理して、関連ノードを見つけて(親ノードに続いて)ノード階層を歩くまでテーブル要素を見つける。 recursiveChildGenerator()は、フラットリストのようにすべてのノードを反復処理するために使用できます。 「」その後の親

soup.find(attrs={"name":"PATHWAY"}).findParent('table') 

まで戻ってトラバース見つける:

soup.find(lambda tag: (tag.name=='table' and \ 
    (tag.find('a', attrs={'name': 'PATHWAY'}) is not None))) 
+0

コードは適切なPythonではないかもしれませんが、BeautifulSoupを通して使用可能です。私は各テーブルを繰り返し試し、その動作を見てみましょう。 – Dyna

+0

コードは構文的には間違っています* –

+0

うーん...コンマはありませんでしたが、あなたのバージョンがかっこを失ってしまったので、あまりにも騒々しいことに戸惑うことはありません。 –

-1

あなたはfindの関数形を使用することができますPythonの方法....単一のxpathコマンドがありますが、軸上のxpathで操作することは、複雑であり、努力する価値があります(xsltやjavascriptの必要条件など)

関連する問題