Я использую этот код: BeautifulSoup для нескольких файлов .html Этот код сохраняет извлеченный текст в файлы .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})
Здорово. Большое спасибо. Второй сработал (created_list)
Не могли бы вы предоставить код, который вы пытались использовать для решения этой проблемы? Нам нужно увидеть, что вы пытались сделать, чтобы мы могли вам помочь. :)