欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

python爬取指定名称类别的图片

程序员文章站 2022-06-15 19:39:05
自己准备数据集的时候经常会用到,从百度爬取指定类别的图片,比如“火灾”,记个笔记import requestsimport os def getManyPages(keyword,pages): params=[] for i in range(30,30*pages+30,30): params.append({ 'tn': 'resultjson_com', 'ipn':...

自己准备数据集的时候经常会用到,从百度爬取指定类别的图片,比如“火灾”,记个笔记

import requests
import os
 
def getManyPages(keyword,pages):
    params=[]
    for i in range(30,30*pages+30,30):
        params.append({
                      'tn': 'resultjson_com',
                      'ipn': 'rj',
                      'ct': 201326592,
                      'is': '',
                      'fp': 'result',
                      'queryWord': keyword,
                      'cl': 2,
                      'lm': -1,
                      'ie': 'utf-8',
                      'oe': 'utf-8',
                      'adpicid': '',
                      'st': -1,
                      'z': '',
                      'ic': 0,
                      'word': keyword,
                      's': '',
                      'se': '',
                      'tab': '',
                      'width': '',
                      'height': '',
                      'face': 0,
                      'istype': 2,
                      'qc': '',
                      'nc': 1,
                      'fr': '',
                      'pn': i,
                      'rn': 30,
                      'gsm': '1e',
                      '1488942260214': ''
                  })
    url = 'https://image.baidu.com/search/acjson'
    urls = []
    for i in params:
        urls.append(requests.get(url,params=i).json().get('data'))
 
    return urls
 
 
def getImg(dataList, localPath):
 
    if not os.path.exists(localPath):  # 新建文件夹
        os.mkdir(localPath)
 
    x = 0
    for list in dataList:
        for i in list:
            if i.get('thumbURL') != None:
                print('正在下载中:%s' % i.get('thumbURL'))
                ir = requests.get(i.get('thumbURL'))
                open(localPath + '%d.jpg' % x, 'wb').write(ir.content)
                x += 1
            else:
                print('该图片链接不存在')
 
if __name__ == '__main__':
    dataList = getManyPages('火灾',100)  # 参数1:关键字,参数2:要下载的页数
    getImg(dataList,'E:/Project/label/') # 参数2:指定保存的路径

爬取完成后,自己把图片筛选一下就可以拿去打label了

本文地址:https://blog.csdn.net/hesongzefairy/article/details/107286212