首页 > 代码库 > python实现图片爬虫
python实现图片爬虫
#encoding:utf-8 import sys reload(sys) sys.setdefaultencoding('utf8') from sgmllib import SGMLParser import re import urllib class URLLister(SGMLParser): def start_a(self, attrs): url = [v for k, v in attrs if k=='href'] if url : urll = url[0] else : return if urll : if urll in globalList : return if isSou(urll) : if sechDir(imgList , urll) > 0 : print 'Fetcher page at ' + ' img alredy saved ... ignore . Queue size : '+str(Queue.__len__()) imgList.append(urll) return else : savImg(urll) imgList.append(urll) globalList.append(urll) print 'Fetcher page at ' + urll + ' save img complete as . Queue size : '+str(Queue.__len__()) else : if sechDir(fetList , urll) > 0 : imgList.append(urll) return else : imgList.append(urll) enQ(urll) print 'Fetcher page at ' + urll + ' a new url , append in Queue . Queue size : '+str(Queue.__len__()) def unknown_starttag(self , tag , attrs) : return fetList = [] # list of url listener fetched . 这是非资源url的历史列表,存在于此表中的url将不会再被爬取 imgList = [] # list of url saved pictures #这是资源url的历史列表,存在于此表中的资源不会再被下载 rgxStr = r'(http://www.bizhijidi.com/)*/wallpapers/[0-9]*/[0-9]*/[^x00-xff]*-900x1600.jpg' #这是需要下载资源的正则表达式,正则#表达式是啥我就不说了,不知道的自己去面壁。。 regrgStr = r'^(http://www.bizhijidi.com/)' #这是全局的网址正则匹配式 staURL = r'http://www.bizhijidi.com/' #这是起始的url imgPath = r'/home/zhangjilun/bizhijidi/' #存放图片的本地路径 Queue = ['http://www.bizhijidi.com/'] #这是url队列,起始时只有起始url在里面 fileName = [] #filename全局列表。。。暂时木有用。。。留着备用 globalList = [] #全局url列表,用于第一次筛选url #这是动态生成图片文件名的函数,就是取的url里的文件名 def changeName(url) : if url : s=url.split('/') return s[-1] #保存图片的函数,很简单的fileIO def savImg(url) : if url : url = 'http://www.bizhijidi.com' + url imgData = http://www.mamicode.com/urllib2.urlopen(url).read()>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。