beautifulsoup 解析文件夹中的每个 HTML 文件 webscraping [已关闭]

beautifulsoup parse every html files in a folder webscraping [closed]

提问人:Michael Lin 提问时间:5/29/2017 最后编辑:DisappointedByUnaccountableModMichael Lin 更新时间:2/1/2021 访问量:226

问:


编辑问题以包括所需的行为、特定问题或错误以及重现问题所需的最短代码。这将有助于其他人回答这个问题。

6年前关闭。

我的任务是从目录中读取每个html文件。条件是查找每个文件是否包含标签

(1) <strong>OO</strong>  
(2) <strong>QQ</strong>

然后

html python-2.7 beautifulsoup html解析

评论


答:

0赞 Tiny.D 5/29/2017 #1

你的函数嵌套在循环中,这就是为什么你写多行给你的,只需将 移出循环并将所有 parti 文本放入一个变量中,如下所示:writeforindex.txtwriteparti_names

participants = soup.find(find_participant)
parti_names = ""
for parti in participants.find_next_siblings("p"):
    if parti.find("strong", text=re.compile(r"(Operator)")):
        break
    parti_names += parti.get_text(strip=True)+","
    print parti.get_text(strip=True)

indexFile = open('index.txt', 'a+')
indexFile.write(filename + ', ' + title.get_text(strip=True) + ticker.get_text(strip=True) + ', ' + d_date.get_text(strip=True) + ', ' + parti_names + '\n' )
indexFile.close()

更新:

您可以使用以下方法获取文件名:basename

from os.path import basename

# you can call it directly with basename
print(basename("C:/Users/.../output/100107-.html"))

输出:

100107-.html

评论

0赞 Michael Lin 5/29/2017
我还有另一个问题,我只想要文件名,但输出给了我路径+文件名。我刚刚更新了代码。