如何使用汤。找

2024-06-26 19:40:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个名为“class=”table wrap MEDdata“”的div类,其中还有另一个div类-“table container small screen full width”,在这个类中我有一个表--“course_catalog_table”,我想访问它。这里是指向我试图从中获取-http://www.nyit.edu/academics/courses/的页面的链接 如何做到这一点?请帮忙

Output: table = div.find('table', {'id':'course_catalog_table'}) AttributeError: 'ResultSet' object has no attribute 'find'

  soup = BeautifulSoup(data.content, "lxml")

  l =[]


 div= soup.find_all('div' , {'id': 'table-wrap MEDdata'})


 table = div.find('table', {'id':'course_catalog_table'})


 for row in table.findAll("a"):
    l.append(row.text)

Tags: dividcontainertablefindscreenfullclass
2条回答

Psidom给了你一个很好的答案,但要解释一下。在

find_all # Will give you a list of elements that you can access with an index
div= soup.find_all('div' , {'id': 'table-wrap MEDdata'}

这是一个列表,因此不能对所有元素使用div.find,可以使用循环

^{pr2}$

或者您可以这样做,例如div = soup.find('div' , {'class': 'table-wrap MEDdata'})[0],其中[0]是索引,所以您可以执行[0]或[1](取决于元素的数量),如果您改用它,代码将可以工作。在

您的代码有两个问题。1) find_all返回无法与另一个find方法链接的结果集或列表,因为元素是唯一的,所以您可以在这里使用find;2)table-wrap MEDdata是class属性,而不是id。解决以下两个问题:

l = []
div = soup.find('div' , {'class': 'table-wrap MEDdata'})

table = div.find('table', {'id':'course_catalog_table'})
​
for row in table.findAll("a"):
    l.append(row.text)

l
#['ACLS',
# 'Advanced Cardiac Life Support',
# 'MAOB',
# 'Ob Gyn',
# 'MAAN',
# ...

相关问题 更多 >