在百度上爬图片

借鉴了Python爬虫实战(五):根据关键字爬取某度图片批量下载到本地(附上完整源码)_爬取图片-CSDN博客的代码,发现不能用,原因是代理ip那部分出了问题,故进行了修改,具体原理请移步原帖。

import requests # 爬虫必备
import os # 新建指定存储文件夹

def get_img_url(keyword):
    """发送请求,获取接口中的数据"""
    # 接口链接
    url = 'https://image.baidu.com/search/acjson?'
    # 请求头模拟浏览器
    headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36'}
    # 构造网页的params表单
    params = {
        'tn': 'resultjson_com',
        'logid': '6918515619491695441',
        'ipn': 'rj',
        'ct': '201326592',
        'is': '',
        'fp': 'result',
        'queryWord': f'{keyword}',
        'word': f'{keyword}',
        'cl': '2',
        'lm': '-1',
        'ie': 'utf-8',
        'oe': 'utf-8',
        'adpicid': '',
        'st': '-1',
        'z': '',
        'ic': '',
        'hd': '',
        'latest': '',
        'copyright': '',
        's': '',
        'se': '',
        'tab': '',
        'width': '',
        'height': '',
        'face': '0',
        'istype': '2',
        'qc': '',
        'nc': '1',
        'fr': '',
        'expermode': '',
        'force': '',
        'cg': 'girl',
        'pn': 1,
        'rn': '5',#爬多少张图片
        'gsm': '1e',
    }
    # 携带请求头和params表达发送请求
    response  = requests.get(url=url, headers=headers, params=params)
    # 设置编码格式
    response.encoding = 'utf-8'
    # 转换为json
    json_dict = response.json()
    # 定位到5个图片上一层
    data_list = json_dict['data']
    # 删除列表中最后一个空值
    del data_list[-1]
    # 用于存储图片链接的列表
    img_url_list = []
    for i in data_list:
        img_url = i['thumbURL']
        # 打印一下图片链接
        # print(img_url)
        img_url_list.append(img_url)
    # print(img_url_list)
    # 返回图片列表
    return img_url_list


def get_down_img(img_url_list):
    # 在当前路径下生成存储图片的文件夹
    folder_path = "./"+str(keyword)
    if os.path.exists(folder_path):
        print("文件夹存在")
    else:
        print("文件夹不存在,生成文件夹")
        os.mkdir(str(keyword))
    # 定义图片编号
    n = 1
    # print(img_url_list)
    for img_url in img_url_list:
        print(img_url)
        myfile = requests.get(img_url)
        img_path = './'+str(keyword)+ '/'+ str(n) + '.jpg'# 图片文件保存的名字及路径
        open(img_path, 'wb').write(myfile.content)
        # 图片编号递增
        n = n + 1

if __name__ == '__main__':
    # 1. 修改关键词
    keyword = '飞机'
    # 2. 获取指定关键词的图片链接
    img_url_list = get_img_url(keyword)
    # 3. 下载图片到指定位置
    get_down_img(img_url_list)

用的时候修改一下keyword就行了,现在这是飞机

比如换成风,就会产生新的文件夹和图片

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值