【发布时间】:2018-08-17 16:29:48
【问题描述】:
我是 python 新手。我开始用Beautiful Soup 编写处理HTML 文件的脚本。一切都在正确处理,但我现在想将文章保存在一个名为 nowe 的新文件夹中,而不是打印它。我需要在处理后将所有文章放到同一个文件夹中,或者制作一个 CSV 文件。
from bs4 import BeautifulSoup
import glob
import os, os.path
path = '/home/darek/Dokumenty/pliki/'
path_out = '/home/darek/Dokumenty/pliki/nowe'
for filename in glob.glob(os.path.join(path, '*.html',)):
f = filename
tresc = open(f)
soup = BeautifulSoup(tresc, 'html.parser')
article = soup.find('div',class_='post')
tagi = soup.find('div', class_='ph_social_share_box ph_social_share_box_bottom')
fout = open( +filename, "w")
fout.close()
print(article)
我的错误日志:
File "/home/darek/Dokumenty/parser.py", line 21, in <module>
fout = open( +filename, "w")
TypeError: bad operand type for unary +: 'str'
这适用于打印
从 bs4 导入 BeautifulSoup 导入全局 导入操作系统,os.path
path = '/home/darek/Dokumenty/pliki/'
path_out = '/home/darek/Dokumenty/pliki/nowe'
for filename in glob.glob(os.path.join(path, '*.html',)):
f = filename
content = open(f)
soup = BeautifulSoup(content, 'html.parser')
article = soup.find('div',class_='post')
tags = soup.find('div', class_='ph_social_share_box ph_social_share_box_bottom')
print(article)
这行得通,我无法写入文件创意?
【问题讨论】:
-
filename是一个字符串。你想用+filename表达什么? Python 解释器也无法理解。 -
看来您需要完成有关文件处理的教程。在循环中,您的代码打开
filename并立即将其关闭,而不对文件执行任何操作。 -
我会在解析后打开包含 html 文件的文件夹并保存在另一个文件夹中。是我的第一个程序吗?我猜错了。此时,whithour 最后一行 fout 他们将结果打印到屏幕上。如何更改以保存文件。
-
您正在尝试编写超出您当前能力的几个步骤。同样,请通过适当的教程来提高你的能力。 Stack Overflow 是有用的问答帖子的存档,不是一般帮助网站。
-
您将处理单个文件与循环逻辑混淆了。教程教您个人技术,您仍然需要加快处理单个文件的速度。一旦你有这么多,你将它包装在一个循环中以按顺序处理许多文件。
标签: python beautifulsoup