爬取百度图片Python脚本

该博客分享了一段Python代码,用于从百度图片中爬取以‘黑烟’为关键词的图片,以构建黑烟检测的数据集。作者提醒,由于可能存在重复或不相关图片,后期需要手动筛选。代码中包含图片下载逻辑,并提示运行时需自行停止。
摘要由CSDN通过智能技术生成

最近项目要求对黑烟进行检测,在网上找其他博主要了一些数据集,自己也发现了一个可以爬取百度图片的脚本,在此分享给大家!!!不多说,下面直接上代码。

# -*- coding:utf-8 -*-
# @Time : 2020/12/24 16:28
# @Author: JulyLi
# @File : spider.py

import requests
import re

num = 0
numPicture = 0
file = ''
List = []


def dowmloadPicture(html, keyword):
    global num
    # t =0
    pic_url = re.findall('"objURL":"(.*?)",', html, re.S)  # 先利用正则表达式找到图片url

    print('找到关键词:' + keyword + '的图片,即将开始下载图片...')
    for each in pic_url:
        print('正在下载第' + str(num + 1) + '张图片,图片地址:' + str(each))
        try:
            if each is not None:
                pic = requests.get(each, timeout=7)
            else:
                continue
        except BaseException:
            print('错误,当前图片无法下载')
            continue
        else:
            string = './output/' + keyword + '_' + str(num) + '.jpg'
            fp = open(string, 'wb')
            fp.write(pic.content)
            fp.close()
            num += 1
        # if num >= numPicture:
        #     return


if __name__ == '__main__':  # 主函数入口
    header = {'content-type': 'application/json',
              'User-Agent': 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0'}
    word = input("请输入搜索关键词(可以是人名,地名等): ")

    num1 = 0
    while 1:
        url = 'https://image.baidu.com/search/flip?tn=baiduimage&ie=utf-8&word=' + word + '&pn='
        r = requests.get(url + str(num1), headers=header, allow_redirects=False)
        r.encoding = 'utf-8'
        dowmloadPicture(r.text, word)
        num1 = num1 + 20

注意:脚本只要运行,需要自己停止,一般爬取一个词条几百张图就差不多哦,因为里面会存在重复或者不相关的图片,后期还是需要自己筛选的!!!
如果阅读本文对你有用,欢迎点赞评论收藏呀!!!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI小笔记

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值