3

我试图在带有此代码的网页中找到一个带有“数据”类的表。

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 在网页上查找具有“数据”类的元素的正确方法是什么?

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 回答