初始网站:http://image.baidu.com/
输入关键词"武汉",得到网址为:https://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=index&fr=&hs=0&xthttps=111111&sf=1&fmq=&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&word=%E6%AD%A6%E6%B1%89
发现里面有一些不重要的参数,但是也有重要的参数,经过分析可以简化为:http://image.baidu.com/search/indextn=baiduimage&ct=201326592&ie=utf-8&word=%E6%AD%A6%E6%B1%89,而且%E6%AD%A6%E6%B1%89是汉字的UTF-8编码
import re
import requests
def dowmloadPic(html, keyword):
pic_url = re.findall('"objURL":"(.*?)",', html, re.S)
i = 1
print('找到关键词:' + keyword + '的图片,现在开始下载图片...')
for each in pic_url:
print('正在下载第' + str(i) + '张图片,图片地址:' + str(each))
try:
pic = requests.get(each, timeout=10) #二进制数据
except requests.exceptions.ConnectionError:
print('【错误】当前图片无法下载')
continue
dir = '../images/' + keyword + '_' + str(i) + '.jpg' #给每张图片指定路径并命名
fp = open(dir, 'wb')
fp.write(pic.content) #将图片二进制数据写成图片
fp.close()
if i<10: #下载的图片的数量
i=i+1
else:
break
if __name__ == '__main__':
word = input("Input key word: ")
url = 'http://image.baidu.com/search/index?tn=baiduimage&ct=201326592&ie=utf-8&word='+word+''
result = requests.get(url)
dowmloadPic(result.text, word)