如何使用RegEx从html文档中提取信息

时间:2019-05-24 13:51:44

标签: python

我试图弄清楚如何使用RegEx从html文档中提取一些信息(它必须是regex而不是任何其他html解析器)。我要从中提取的html文档称为:"website1.html"。它的数据如下:

<div class="category"><div class="comedy">Category1</div></div>
   <p class="desc">Title1</p>
   <p class="date">Date1/p>

<div class="category"><div class="comedy">Category2</div></div>
   <p class="desc">Title2</p>
   <p class="date">Date2/p>

我如何首先选择html文档,以便python可以读取它,然后使用正则表达式class="comedy", class="desc", and class="date"表达式从findall中提取信息?

我希望它们在单独的列表中,以便最终得到:在一个列表中为["Title1", "Title2"],在另一个列表中为["Category1", "Category2"]

我把整个过程映射在脑海中,但我不知道要使用的特定字符/功能。

1 个答案:

答案 0 :(得分:1)

您可以使用regular expression作为以下示例:

import re

filename = 'path\\website1.html'
t = open(filename, "r").read()

categories = re.findall(r"<div class=\"comedy\">(.*?)</div>",t)
descs = re.findall(r"<p class=\"desc\">(.*?)</p>",t)
dates = re.findall(r"<p class=\"date\">(.*?)/p>",t)

# Print Your code here
print(categories)
print(descs)
print(dates)

结果

['Category1', 'Category2']
['Title1', 'Title2']
['Date1', 'Date2']

但是我注意到您的html格式不正确(<p class="date">Date2/p>)是根据您的示例进行的。