gpt4 book ai didi

python - 用漂亮的汤从html标签中提取字符串

转载 作者:太空狗 更新时间:2023-10-30 01:26:41 26 4
gpt4 key购买 nike

我在子目录中有一个这样的 html 文件 the_files

<div class='log'>start</div>
<div class='ts'>2017-03-14 09:17:52.859 +0800&nbsp;</div><div class='log'>bla bla bla</div>
<div class='ts'>2017-03-14 09:17:55.619 +0800&nbsp;</div><div class='log'>aba aba aba</div>
...
...

我想提取每个标签中的字符串并在终端上像这样打印

2017-03-14 09:17:52.859 +0800 , bla bla bla
2017-03-14 09:17:55.619 +0800 , aba aba aba
...
...

我想忽略 <div class='log'>start</div> 的第一行.

到目前为止我的代码

from bs4 import BeautifulSoup

path = "the_files/"
def do_task_html():
dir_path = os.listdir(path)
for file in dir_path:
if file.endswith(".html"):
soup = BeautifulSoup(open(path+file))
item1 = [element.text for element in soup.find_all("div", "ts")]
string1 = ''.join(item1)
item2 = [element.text for element in soup.find_all("div", "log")]
string2 = ''.join(item2)
print string1 + "," + string2

这段代码产生的结果如下

2017-03-14 09:17:52.859 +0800 2017-03-14 09:17:55.619 +0800 , start bla bla bla  aba aba aba ... ...

有办法解决这个问题吗?

感谢您的帮助。

最佳答案

按类获取每个 div,获取其文本及其 next_sibling 文本。

for div in soup.find_all("div", class_="ts"):
print ("%s, %s") % (div.get_text(strip=True), div.next_sibling.get_text(strip=True))

输出:

2017-03-14 09:17:52.859 +0800, bla bla bla
2017-03-14 09:17:55.619 +0800, aba aba aba

关于python - 用漂亮的汤从html标签中提取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42997567/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com