2016-08-24 2 views
0

第二及び第三の子を取得するbeautifulsoupを使用して:Iは以下のような表を有してBeautifuSoup

<table> 
    <thead> 
     <tr> 
      <th></th> 
      <th></th> 
      <th></th> 
      <th></th> 
     <tr> 
    </thead> 
    <tbody> 
     <tr> 
      <td></td> 
      <td></td> 
      <td></td> 
     </tr> 
     <tr> 
      <td></td> 
      <td></td> 
      <td></td> 
     </tr> 
     <tr> 
      <td></td> 
      <td></td> 
      <td></td> 
     </tr> 
     <tr> 
      <td></td> 
      <td></td> 
      <td></td> 
     </tr> 
     <tr> 
      <td></td> 
      <td></td> 
      <td></td> 
     </tr> 
    </tbody> 
</table> 

Iが第二各行の3分の1を必要とします。

Traceback (most recent call last): 
    File "C:/Users/arcee/PycharmProjects/scraper/main.py", line 33, in <module> 
    Record = Records.find_all('td') 
AttributeError: 'ResultSet' object has no attribute 'find_all' 

第2および第3を取得するための簡単な方法があります:

Table = Soup.find('table', attrs={'id': 'field'}) 
     Tbody = Table.find('tbody') 
     Records = Tbody.find_all('tr') 
     Record = Records.find_all('td') 
     for field in Records: 
      print (Record[2].text) 

私はエラーが発生します:私は私がやっている、今

のPython 3.5でBeautifulSoupを使用していますTD要素?

おかげ

答えて

0

あなたは、これらの行で、そのエラーを取得している:

Records = Tbody.find_all('tr') 
Record = Records.find_all('td') 

検索タグの出現listResultSet)を返しますfind_allResultSetにはfind_allという属性はありませんが、個々のメンバーにはそれぞれ属性があります。そうです。

Records = Tbody.find_all('tr') 
for record in records: 
    print(record.find_all('td')) 

コードを実行します。

+1

ok。これはいい。どうもありがとうございます – arcee123

関連する問題