"NoneType"对象没有属性"find_all"与美丽汤



我已经尝试了我发现的这个代码,但是它给了我AttributeError的错误消息:'NoneType'对象没有属性'find_all'我不熟悉美丽的汤,不知道如何解决这个问题。试图找到一个解决方案,我忽略了tabpane部分,但不能想出它。你有什么建议吗?

import datetime
import pandas as pd # pip install pandas
import requests # pip install requests
from bs4 import BeautifulSoup # pip install beautifulsoup4
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) 
Gecko/20100101 Firefox/87.0',
}
url = 'https://www.marketwatch.com/tools/earningscalendar'
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.content, 'html.parser')
tabpane = soup.find('div', 'tabpane')
earning_tables = tabpane.find_all('div', {'id': True})
dfs = {}
current_datetime = datetime.datetime.now().strftime('%m-%d-%y %H_%M_%S')
xlsxwriter = pd.ExcelWriter('Earning Calendar 
({0}).xlsx'.format(current_datetime), index=False)
for earning_table in earning_tables:
if not 'Sorry, this date currently does not have any earnings 
announcements scheduled' in earning_table.text:
earning_date = earning_table['id'].replace('page', '')
earning_date = earning_date[:3] + '_' + earning_date[3:]
print(earning_date)
dfs[earning_date] = pd.read_html(str(earning_table.table))[0]
dfs[earning_date].to_excel(xlsxwriter, sheet_name=earning_date, 
index=False)
xlsxwriter.save()
print('earning tables Excel file exported')

在页面中抓取所有表:

tables = pd.read_html("https://www.marketwatch.com/tools/earnings-calendar")

看第一个:

print(tables[0].head())

如果你确定所有的表都有相同的列,你可以将它们连接成只有一个数据帧:

df = pd.concat(pd.read_html("https://www.marketwatch.com/tools/earnings-calendar"))