我试图弄清楚如何使用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"]
。
我把整个过程映射在脑海中,但我不知道要使用的特定字符/功能。
答案 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>
)是根据您的示例进行的。