【发布时间】:2019-01-27 20:41:05
【问题描述】:
我正在尝试从 HTML 文件的本地文件夹中抓取几个变量,但在循环进行到一半时出现异常。例外是AttributeError: 'NoneType' object has no attribute 'contents。它实际上不是.contents 我查看了它挂起的文件,它的结构与其他文件完全相同。如果您删除.contents,那么您只需使用find() 函数引发相同的异常。有谁知道为什么会这样?再次,许多文件处理没有问题。我的代码如下:
df_list = []
folder = 'rt_html'
for movie_html in os.listdir(folder):
with open(os.path.join(folder, movie_html)) as file:
soup = BeautifulSoup(file)
title = soup.find('title').contents[0][:-len(' - Rotten Tomatoes')]
audience_score = soup.find('div', class_ = 'audience-score meter').find('span').contents[0][:-1]
num_audience_ratings = soup.find('div', class_ = 'audience-info hidden-xs superPageFontColor')
num_audience_ratings = num_audience_ratings.find_all('div') [1].contents[2].strip().replace(',', '')
# print(num_audience_ratings)
# break
df_list.append({'title': title,
'audience_score': int(audience_score),
'number_of_audience_ratings': int(num_audience_ratings)})
df = pd.DataFrame(df_list, columns = ['title', 'audience_score', 'number_of_audience_ratings'])
【问题讨论】:
标签: python beautifulsoup scrape