2
回答
使用Python抓取网页图片
【腾讯云】学生服务器套餐10元/月 >>>   

今天写了一个Python小程序,用来抓取网页图片.

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()

原理:在Python使用com 接口运行IE浏览器,然后打开网页,获取网页所有图片的URL,最后利用win32api函数GetUrlCacheEntryInfo找出图片相应的本地缓存文件,复制到指定目录。

原文链接: http://www.cnblogs.com/flysun/archive/2009/06/16/1504278.html
举报
彭博
发帖于6年前 2回/865阅
顶部