欢迎访问宙启技术站
智能推送

使用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文件中提取图像路径。您可以根据自己的需求修改和扩展这个例子。