pythonhtml:从htmlfi中提取部分文本

2024-10-01 09:16:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在做一个项目,我下载了一堆相关的html文件,并从中收集数据。我注意到的一点是,尽管html文件的整体格式相似,但有时不同的文件使用不同的标记来存储相似的信息。你知道吗

例如,在一个文件中可以是:

<html>
<head>
<p> Title: The GodFather </p>
<p> Author: Mario Puzo </p>
</head>
<html>

另一个例子是:

<html>
<head>
<p> Heading </p>
<pre> Ebook from xyz site: Please donate to our foundation at www.abc.com
Title: The GodFather
Author: Mario Puzo
</pre>
</head>
</html>

你知道吗 你知道吗

我可以肯定地说,“标题:”和“作者:”在所有html文件中都很常见。我想提取“标题:”和“作者:”旁边的文本。 我假设我用漂亮的汤来提取每个html文件。但是要提取标题作者,使用正则表达式是最好的吗?你知道吗


Tags: 文件the数据项目标题titlehtml作者
1条回答
网友
1楼 · 发布于 2024-10-01 09:16:18

不用为靓汤操心,只要用正则表达式:

re.findall(r'(?<=Author:).*?(?=<)', html.replace('\n', ''))
>>> [' Mario Puzo']

re.findall(r'(?<=Title:).*?(?=<)', html.replace('\n', ''))
>>> [' The GodFatherAuthor: Mario Puzo']

这将匹配作者,当然,它可能不适用于您的一些标题,因为它还包含在另一个标记之前的“Author”(如上所示),在这种情况下,您可以对所有已爬网的标题执行title.split('Author')[0],因为如果Author不在字符串中,此方法将不会更改字符串。你知道吗

相关问题 更多 >