下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。
内存溢出小编现在分享给大家,也给大家做个参考。
#! /usr/bin/env python# -*- Coding: utf-8 -*-import urllib2import reimport osdef getMeinv(): # 首先应该分页解析所有的链接和名字 # 定义页码 page = 1 # 请求数据 responseHTML = getHTML('http://sexy.faceks.com/?page=' + str(page)) # 解析出数据的路径和文件夹名称 linkAndname = getlinkAndname(responseHTML) # 当找出的数据大于0的时候进入循环 while(len(linkAndname) > 0): # 循环解析每个链接的数据 for l in linkAndname: print l[0],l[1] fileDirReg = r'<.*>' fileDirPatter = re.compile(fileDirReg) fileDirFindList = re.findall(fileDirPatter,l[1]) filename = l[1] print fileDirFindList for f in fileDirFindList: filename = filename.replace(f,"") filename = filename.replace(' ',"") if not filename: filename = '没有名称' makeDir(filename) try: picResponseHTML = getHTML(l[0]) picList = getimageUrl(picResponseHTML) for p in picList: writeImage(filename,p) except: continue page += 1 responseHTML = getHTML('http://sexy.faceks.com/?page=' + str(page)) linkAndname = getlinkAndname(responseHTML)#得到网页源码def getHTML(reqUrl): # 请求网络 8s 超时,如果出现各种异常,重新请求,累计5次返回失败 try: response = urllib2.urlopen(reqUrl,timeout=8) except: for i in xrange(4): try: response = urllib2.urlopen(reqUrl,timeout=8) except: continue else: return response.read() break else: return response.read()#得到返回的链接和名称def getlinkAndname(responseHTML): reg = r'<a href="(.*)">[\s]*<img src=".*" />[\s]*</a>[\s]*</div>[\s]*<div ><p>(.*)</p>' pattern=re.compile(reg) findList = re.findall(pattern,responseHTML) return findListdef getimageUrl(responseHTML): reg = r'<img src="(.*)"/>' pattern=re.compile(reg) findList = re.findall(pattern,responseHTML) return findListdef makeDir(dirname): dirPath = os.getcwd() + '/' + dirname if not os.path.exists(dirPath): print '文件夹不存在,创建文件夹:',dirname os.mkdir(dirPath) else: print dirname,'以存在'def writeImage(dirname,url): dirPath = os.getcwd() + '/' + dirname print '正在写出' + os.path.basename(url) try: r = urllib2.urlopen(url,timeout=8) with open(dirPath + '/' + os.path.basename(url),"wb") as f: f.write(r.read()) except: for i in xrange(4): try: #urllib.urlretrIEve(url,dirPath + '/' + os.path.basename(url)) r = urllib2.urlopen(url,timeout=8) with open(dirPath + '/' + os.path.basename(url),"wb") as f: f.write(r.read()) except: continue else: breakif __name__ == '__main__': getMeinv();
以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
总结以上是内存溢出为你收集整理的我也来个python的妹子图吧全部内容,希望文章能够帮你解决我也来个python的妹子图吧所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)