使用Python抓取网页图片[转载]

ImgDownloader
import win32com.client,time,win32inet,win32file,os
class ImgDownloader:
    def __init__(self,url,dir):
        self.__dir=dir
        self.__ie=win32com.client.Dispatch('InternetExplorer.Application')
        self.__ie.Navigate(url)
        self.__wait__()

    def __wait__(self):
        while self.__ie.Busy:
            time.sleep(0.1)

    def start(self):
        self.__wait__()
        imgs=self.__ie.Document.getElementsByTagName('img')
      
        for i in range(imgs.length):
            try:
                cachInfo=win32inet.GetUrlCacheEntryInfo(imgs[i].src)
                if cachInfo:
                    path=cachInfo['LocalFileName']
                    pathinfo=path.split('\\')
                    pathinfo.reverse()
                    filename=('[%d]' % i) + pathinfo[0]
 
                    win32file.CopyFile(path,os.path.join(self.__dir,filename),True)
            except:
                pass
    def close(self):
        self.__ie.Quit()

if __name__=='__main__':
    d=ImgDownloader('http://image.baidu.com/i?ct=201326592&cl=2&lm=-1&tn=baiduimage&pv=&word=boy&z=0','c:\\temp\\')
    d.start()
    d.close()

 

posted on 2013-05-03 09:14  seaven  阅读(516)  评论(0编辑  收藏  举报

导航