首页 » 技术分享 » 百度图片下载器

百度图片下载器

 

—————————————————————————————————————————————————————————————————————

今天搜索了一下图片发现百度上有许多自己喜欢的图片,于是就想把这些图片下载下来,但是如果一张一张的下载的话又太慢了,想了一下,自己写个爬虫吧!|

—————————————————————————————————————————————————————————————————————

GO!GO!GO!

先上代码:

# coding:utf-8
import requests
import re
import os
import shutil
import urllib2
def getpage(url):
    response=requests.get(url).text
    urls=re.findall('"objURL":"(.*?)",',response,re.S)
    return urls
def downimg(keyword,pagenums):
    path='E:\\picture'
    links=[]
    count=1
    if pagenums>0:
            urls=['http://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=%s'%keyword+'&pn={}&ct=&ic=0&lm=-1&width=0&height=0'.format(str(i))for i in range(pagenums+1)]
            while urls:
                links=links+getpage(urls.pop(0))
            if os.path.exists(path):
                shutil.rmtree(path)
                print '目录删除!'
            os.mkdir(path)
            print '新建目录!'
            while links:
                try:
                    print'正在下载第',count ,'张'
                    img=urllib2.urlopen(links.pop(0)).read()
                    # img=requests.get(links.pop(0)).text    再次注释一下,据说使用python2.7和requests结合的时候会有编码问题
                    with open(path+'\\'+str(count)+'.jpg','wb')as f:
                        f.write(img)
                        count+=1
                except :
                    print urllib2.URLError.reason
                    continue
            print '下载完毕!'
inputwd=raw_input("请输入关键字:")
inputnum=int(raw_input("需要下载多少页呢:"))
downimg(inputwd,inputnum)







转载自原文链接, 如需删除请联系管理员。

原文链接:百度图片下载器,转载请注明来源!

0