从baidu下载图片的脚本[转]
CU某人写的
试了一下可以用
收藏先以后再研究
:)
真的真的好久没写程序了。。。。。。
#!/usr/bin/env python
import os,sys,urllib
doc="""-----------------------------------图片下载----------------------"""
print doc
findstr=raw_input("请输入您想下载的图片关键字,例如 美女:")
if findstr=="":
sys.exit()
imgsum=raw_input("请输入您想下载的最大图片数量:")
if imgsum=="":
imgsum=10
else:
imgsum=int(imgsum)
dir=raw_input("请输入您想要存放图片的目录:")
if dir=="":
sys.exit()
else:
new_dir=""
if dir.endswith("/"):
for i in range(len(dir)-1):
new_dir=new_dir+dir
dir=new_dir
def baidu(imgsum,findstr):
gbstr=("找到相关图片约".decode("utf8")).encode("gb2312")
gbstr2=("找到相关图片".decode("utf8")).encode("gb2312")
gbstr3=("张".decode("utf8").encode("gb2312"))
if findstr=="":
return 0
findstr=findstr.decode("utf8")
findstr=urllib.quote(findstr.encode('gb2312'))
url="http://image.baidu.com/i?z=3&cl=2&ct=201326592&sn=&lm=-1&cm=1&sc=0&bu=&rn=16&tn=baiduimage&word=%s&pn="%findstr
print url
webfile=urllib.urlopen(url+"0").read()
start=webfile.find(gbstr)
if start==-1:
start=webfile.find(gbstr2)
start=start+12
else:
start=start+14
end=webfile.find(gbstr3,start)
sum=webfile[start:end]
sum=sum.replace(",","")
sum=int(sum) #总图片数
sumpage=sum/16+1 #总页数
print "找到了%d张图片"%sum
i=0 #下载的图片数
for page in range(sumpage):
p_url=url+"%s"%(page*16) #当前页url
webfile=urllib.urlopen(p_url).read()
i_start=0
i_end=0
while True:
i_start=webfile.find("i?ct",i_end)
if i_start