python爬取百度图片并存储在文件夹中

初始网站: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编码

python爬取百度图片并存储在文件夹中_第1张图片

 python爬取百度图片并存储在文件夹中_第2张图片

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)

python爬取百度图片并存储在文件夹中_第3张图片

你可能感兴趣的:(python,爬虫,爬虫)