可搜索下载图片的脚本

可搜索下载图片的脚本

可以用这东西自动找mm图片.....

[Copy to clipboard] [ - ]
CODE:
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[i]
                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<0:
                                break
                        i_start=i_start-23
                        i_end=webfile.find("\"",i_start)
                        i_url=webfile[i_start:i_end]              #找到一个img页面的路径


                        webstr=urllib.urlopen(i_url).read()
                        start=0
                        end=0
                        while True:
                                start=webstr.find("img src=\"",end)
                                if start<0:
                                        break
                                start=start+9
                                end=webstr.find("\"",start)
                                imgurl=webstr[start:end]
                                if imgurl.find("img-jg.gif")!=-1:
                                        continue
                                i=i+1
                                print "正在下载第%d张图片"%i
                                try:
                                         data=urllib.urlopen(imgurl).read()
                               except:
                                         print "丢失一张图片"
                                         break
                                f=open("%s/%d"%(dir,i),"w")
                                f.write(data)
                                f.close()

                                if i==imgsum:
                                        print "已经按您的要求,下载了%d张图片,下载完毕"%i
                                        return 1

baidu(imgsum,findstr)

搂主应该把代码写到'[code][/code]'这样的标签中
老兄啊,你的code运行不了啊


QUOTE:
原帖由 yidianboy 于 2006-6-17 20:06 发表
老兄啊,你的code运行不了啊

哪里报错? 自己改一下吧, 要把编码保存为utf8格式的!
不错阿
真的可以下载呢!!