3

このコードを使用して、Web ページで「データ」クラスのテーブルを見つけようとしました。

import urllib2
from BeautifulSoup import BeautifulSoup

soup = BeautifulSoup(urllib2.urlopen('http://www.cbssports.com/nba/draft/mock-draft').read())

rows = soup.findAll("table.data")
print rows

ただし、そのページに「データ」クラスのテーブルが存在することは確かですが、行に対して何も得られません。BeautifulSoupを使用してWebページでクラス「データ」を持つ要素を見つける適切な方法は何ですか?

4

2 に答える 2

2

行をピックアップする場合は、次のものが必要です。

import urllib2
from BeautifuSoup import BeautifulSoup

soup = BeautifulSoup(urllib2.urlopen('http://www.cbssports.com/nba/draft/mock-draft').read())

# if there's only one table with class = data
table = soup.find('table', attrs = {'class' : 'data'})

# if there are multiple tables with class = data
table = soup.findAll('table', attrs = {'class' : 'data'})[n]
# suppose you need the n-th table of the list returned

rows = table.findAll('tr') # gives all the rows, you can set attrs to filter

次に、列を反復処理することもできます。

for row in rows:
    cols = row.findAll('td')
    ...
于 2012-06-25T08:46:08.583 に答える
0

あなたは次のようなものが欲しい

rows = soup.find_all('table', attrs = {"class": "data"})

現在の行の代わりに(テスト済み)。要素のクラスは属性であるため、 では属性でフィルタリングしますfind_all。この行は、サンプル ページから大きなテーブル要素を返します。

于 2012-06-25T04:11:43.667 に答える