—————————————————————————————————————————————————————————————————————
今天搜索了一下图片发现百度上有许多自己喜欢的图片,于是就想把这些图片下载下来,但是如果一张一张的下载的话又太慢了,想了一下,自己写个爬虫吧!|
—————————————————————————————————————————————————————————————————————
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)
转载自原文链接, 如需删除请联系管理员。
原文链接:百度图片下载器,转载请注明来源!