我正在尝试使用html URL获取多个图像,但每次调用它都附加到已经解析的图像列表
from HTMLParser import HTMLParser
class MyHTMLParser(HTMLParser):
images = []
def handle_starttag(self, tag, attrs):
if tag == "a":
for attr in attrs:
if attr[0] == "href" and attr[1].startswith("image"):
self.images.append(attr[1])
def get_sysimage(url):
response = urllib2.urlopen(url)
html = response.read()
parser = MyHTMLParser()
parser.feed(html)
images = parser.images
print images
for url in urllist:
get_sysimage(url)
我做错了什么?
答案 0 :(得分:0)
您已将images
定义为类级变量,因此它与解析器的所有实例共享。试试这个:
class MyHTMLParser(HTMLParser):
def __init__(self, *args, **kwargs):
super(MyHTMLParser, self).__init__(*args, **kwargs)
self.images = []
这将在创建实例时为每个实例创建一个新的独立images
列表。