2016-04-20 18 views
0

私はウェブページをスクラップするプログラムを構築しています。BeautifulSoup4:子タグ付きの要素を見つける

私はすでに

MySoup = soup.find_all("td", { "class" : "table" }) 

ともすべてtr

を持つすべての td class=tableを持つ要素を見つけることができた class="table"

<tr> 
    <td class="table">1</td> 
    <td class="table"> 
     <a href="...">...</a> 
    </td> 
    <td class="table">18</td> 
</tr> 

td子を持つページ内のすべてのtrの要素を見つける必要がある

MySoup = soup.find_all("tr") 

しかしそこに、ページ全体では、あまりにも多く、これは私がとにかく必要なものを正確ではありません...

答えて

3

は、私は、ページ内のクラス=「表」と子どもをtdのしたすべてのtr要素を見つける必要があります

soup.select('tr td.table') 

あなたはtrの直接の子供であるすべてのTDのは、その後、使用したい場合

soup.select('tr > td.table') 

例:私は(結果だけではなく、 `tr`withの子供をソース全体を見ていて

>>> html = '''<tr> 
    <td class="table">1</td> 
    <td class="table"> 
     <a href="...">...</a> 
    </td> 
    <td class="table">18</td> 
</tr><td class="table">19</td>''' 
>>> soup = BeautifulSoup(html, 'lxml') 
>>> soup.select('tr td.table') 
[<td class="table">1</td>, <td class="table">\n<a href="...">...</a>\n</td>, <td class="table">18</td>] 
>>> 
+0

' soup.select( 'TR td.table') '、選択をしていません'td')。 –

+0

は、ソース全体がtrの内部に存在するためです。 –

関連する問題