我也来个python的妹子图吧
发布时间:2020-05-30 18:46:06 所属栏目:Python 来源:互联网
导读:我也来个python的妹子图吧
|
下面是脚本之家 jb51.cc 通过网络收集整理的代码片段。 脚本之家小编现在分享给大家,也给大家做个参考。 #! /usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
import re
import os
def 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 class="img" href="(.*)">[s]*<img src=".*" />[s]*</a>[s]*</div>[s]*<div class="text"><p>(.*)</p>'
pattern=re.compile(reg)
findList = re.findall(pattern,responseHtml)
return findList
def getImageUrl(responseHtml):
reg = r'<img src="(.*)"/>'
pattern=re.compile(reg)
findList = re.findall(pattern,responseHtml)
return findList
def 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:
break
if __name__ == '__main__':
getMeinv();
以上是脚本之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。 如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Windows下Python的Django框架环境部署及应用编写入门
- bitwise operator example
- python – OperationError:无法保存文档(LEFT_SUBFIELD只支
- Windows下使Python2.x版本的解释器与3.x共存的方法
- python – 如何测试memoized函数?
- ipython上下箭头奇怪的行为
- Python序列之list和tuple常用方法以及注意事项
- 在测试python max recursion depth时,为什么我多次遇到Runt
- Python GUI自动化实现绕过验证码登录
- python – App Engine:是否将time.sleep()计入我的配额?
