文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>从baidu下载图片的脚本[转]

从baidu下载图片的脚本[转]

时间:2006-06-19  来源:bleem1998

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[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)
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载