url = url_stub % (stat_id, starting_year)
page = requests.get(url)
html = BeautifulSoup(page.text.replace('n', ''), 'html.parser')
stat = html.find("div", class_="parsys mainParsys section").find('h3').text
我正在尝试使用BeautifulSoup对象并使用find()函数,但我一直得到" AttributeError:' NoneType'对象没有属性'找到'"。我做错了什么?
答案 0 :(得分:0)
@jasonharper是对的。您可以考虑使用异常处理或将该链断开为部分以检查是否有来自html.find("div", class_="parsys mainParsys section")
答案 1 :(得分:0)
要更好地排查问题,您需要修改代码。这将帮助您找到代码的哪些部分失败。但是,我还要考虑将html类缩小到单个html类进行测试,然后如果这是问题之一,找出如何向查找函数添加多个类名
先试试这个。如果失败,请尝试单个html类名。url = url_stub % (stat_id, starting_year)
page = requests.get(url)
html = BeautifulSoup(page.text.replace('n', ''), 'html.parser')
print('before stat')
stat = html.find("div", class_="parsys mainParsys section")
print('stat worked')
print('before data')
data = stat.find('h3').text
print('after data')
编辑:同样,class_可能不会被称为class_,而只是类
答案 2 :(得分:0)
@jasonharper指出,那是因为第一个.find()
找不到任何东西。为避免错误,您必须验证您的第一个和第二个查找是否找到了任何内容:
if html.find("div", class_="parsys mainParsys section"):
if html.find("div", class_="parsys mainParsys section").find('h3'):
stat = html.find("div", class_="parsys mainParsys section").find('h3').text
else:
stat=None
else:
stat = None
答案 3 :(得分:0)
我偶然发现了您正在使用的相同功能和项目。您必须更改:
stat = html.find("div", class_="parsys mainParsys section").find('h3').text
到
stat = html.find("div", class_="parsys mainParsys").find('h3').text
此外,如果您使用的是3.6版本,则必须进行更新:
import urllib.request
urllib.request.urlretrieve(url, filename)