使用HTMLParser.HTMLParser从HTML文件中提取图像路径
发布时间:2024-01-03 08:19:06
下面是一个使用HTMLParser.HTMLParser从HTML文件中提取图像路径的例子。
from html.parser import HTMLParser
class ImageParser(HTMLParser):
def __init__(self):
HTMLParser.__init__(self)
self.image_paths = []
def handle_starttag(self, tag, attrs):
if tag == 'img':
for attr in attrs:
if attr[0] == 'src':
self.image_paths.append(attr[1])
def extract_image_paths(html_file):
with open(html_file, 'r') as f:
html_data = f.read()
parser = ImageParser()
parser.feed(html_data)
return parser.image_paths
# 使用例子
image_paths = extract_image_paths('example.html')
for path in image_paths:
print(path)
在这个例子中,我们首先创建了一个名为ImageParser的类,继承自HTMLParser。在初始化方法中,我们创建了一个空列表image_paths来存储提取到的图像路径。
然后,我们重写了handle_starttag方法。当解析器遇到一个开始标签时,它会调用该方法,并传递标签和属性的列表作为参数。我们只对img标签感兴趣,因此我们检查tag是否为'img'。如果是,我们遍历属性列表,找到src属性并将其值添加到image_paths列表中。
接下来,我们定义了一个名为extract_image_paths的函数,它接受一个HTML文件路径作为输入参数。该函数首先打开并读取HTML文件,然后创建了我们之前定义的ImageParser实例。然后,我们使用feed方法将HTML数据传递给解析器。最后,我们返回ImageParser实例中提取到的图像路径列表。
在使用例子中,我们调用了extract_image_paths函数,并传递了一个example.html文件路径。该函数返回提取到的图像路径列表,我们遍历该列表并打印每个路径。
这个例子演示了如何使用HTMLParser.HTMLParser从HTML文件中提取图像路径。您可以根据自己的需求修改和扩展这个例子。
