gpt4 book ai didi

Python 的 "re"模块不工作?

转载 作者:太空狗 更新时间:2023-10-29 22:08:06 27 4
gpt4 key购买 nike

我正在使用 Python 的“re”模块,如下所示:

request = get("http://www.allmusic.com/album/warning-mw0000106792")
print re.findall('<hgroup>(.*?)</hgroup>', request)

我所做的只是获取 this site 的 HTML ,并寻找这个特定的代码片段:

<hgroup>
<h3 class="album-artist">
<a href="http://www.allmusic.com/artist/green-day-mn0000154544">Green Day</a> </h3>

<h2 class="album-title">
Warning </h2>
</hgroup>

但是,它继续打印一个空数组。为什么是这样?为什么 re.findall 找不到这个片段?

最佳答案

您正在解析的 HTML 位于多行。您需要像这样将 re.DOTALL 标志传递给 findall:

print re.findall('<hgroup>(.*?)</hgroup>', request, re.DOTALL)

这允许 . 匹配换行符,并返回正确的输出。

@jsalonen 是对的,当然,用正则表达式解析 HTML 是一个棘手的问题。但是,在像这样的小情况下,尤其是对于一次性脚本,我认为这是可以接受的。

关于Python 的 "re"模块不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17776670/

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