我正在写一个给定http地址的小程序,它会查找并下载其中的图像。我现在的情况是这样的:使用urllib2查找和下载网站的图像
import urllib2, html
class HTMLNode(object):
def __init__(self,tag,attr,content,closed=True):
self.tag = tag
self.attr = attr
self.content = content
self.closed = closed
def istext(self):
return self.tag == '_text_'
def tostring(self):
if self.istext():
return self.content
ret = '<'+self.tag
for k, v in self.attr.items():
ret += ' '+k+'="'+v+'"'
ret += '>'
if self.closed:
for c in self.content:
ret += c.tostring()
ret += '</'+self.tag+'>'
return ret
def find_by_tag(self,tag):
ret = []
if self.tag == tag: ret += [self]
if not self.istext():
for c in self.content:
ret += c.find_by_tag(tag)
return ret
def imagegrab(url):
req = urllib2.Request(url)
response = urllib2.urlopen(req)
output = open(url, 'wb')
output.write(response.read())
缺少的环节是找到一种方法来使用HTMLNode类的“find_by_tag”功能,使程序将扫描的“”标签,并从网站上下载的图片。有人可以帮助我吗?
你用Python 3标记了这个,但是使用'urllib2'(一个Python 2 stdlib库)。标记错误或者您正在使用'urllib'。 :-) –
我正在使用Python3 _and_ urllib2,我从来没有遇到任何问题! – test123
来自Python 2 ['urllib2'文档](http://docs.python.org/2/library/urllib2.html):* urllib2模块已经在Python 3中的几个模块中分割,名为'urllib。 request'和'urllib.error'。*对不起,不好意思,但* python 3 *中没有'urllib2'。 –