Beautiful Soup:访问“ResultSet”对象上的“find_all”属性时出现 AttributeError
在使用 Beautiful Soup 进行网页抓取时,必须了解您正在使用的对象类型。使用 BeautifulSoup.find_all() 时,请确保将其应用到正确的对象。
考虑下面的代码片段:
import requests from bs4 import BeautifulSoup url = 'https://gist.githubusercontent.com/anonymous/c8eedd8bf41098a8940b/raw/c7e01a76d753f6e8700b54821e26ee5dde3199ab/gistfile1.txt' r = requests.get(url) soup = BeautifulSoup(r.text) table = soup.find_all(class_='dataframe')
在此代码中,table 是一个 ResultSet 对象。 ResultSet 是一个类似列表的对象,包含多个 Tag 对象。要查找每个 Tag 对象中的元素,您需要迭代 ResultSet 中的元素并对每个 Tag 对象调用 find_all()。
下面更正的代码演示了这一点:
... for row in table[0].find_all('tr'): col = row.find_all('td') ...
总之,当您遇到 AttributeError: 'ResultSet' object has no attribute 'find_all' 时,请验证您是否在适当的对象类型上调用 find_all()。在这种情况下,请记住迭代 ResultSet 并对每个 Tag 对象执行 find_all()。
以上是为什么我的 Beautiful Soup 代码会抛出 AttributeError: \'ResultSet\' 对象没有属性 \'find_all\'?的详细内容。更多信息请关注PHP中文网其他相关文章!