我正在使用此代码:BeautifulSoup on multiple .html files此代码将extratced文本保存到.txt文件中。我想将DataFrame中提取的每条记录另存为一行。
我想将结果作为单个列保存到DataFrame中作为“文件”。如何实现相同?
import glob
import os.path
from bs4 import BeautifulSoup
dir_path = r"C:\My_folder\tmp"
results_dir = r"C:\My_folder\tmp\working"
for file_name in glob.glob(os.path.join(dir_path, "*.html")):
with open(file_name) as html_file:
soup = BeautifulSoup(html_file)
results_file = os.path.splitext(file_name)[0] + '.txt'
with open(results_file, 'w') as outfile:
for i in soup.select('font[color="#FF0000"]'):
print(i.text)
outfile.write(i.text + '\n')
您可以在代码的开头创建一个空数据框,然后在循环内逐行追加。
df = pd.DataFrame(columns=['columname'])
然后在你的循环中(在print(i.text)的那一刻),你可以使用:
dataframe.append(i.text))
或者可能是创建一个列表,将所有i.text添加到列表中,然后使用以下命令将其转换为df:
df = pd.DataFrame({'columname':created_list})