【PYTHON】——如何抓取百度图片到本地

简介: 本篇文章主要介绍一下如何抓取百度图片到本地, 从而实现快速找图的需求

本篇文章主要介绍一下如何抓取百度图片到本地, 从而实现快速找图的需求



PYTHON环境配置

PYTHON环境配置以及GEANY编辑器的配置具体可参考博主下面这篇文章

python如何配置文本编辑器Geany


库的安装

在此爬虫中我们需要用到5个库,它们分别是:requests  json  urllib  os  time

cmd代码安装

1.进入cmd命令提示符

d8327671ec9de7353b607e04404c5de.png

2.输入安装代码

pipinstallrequests

image.png

3.依次替换库的名称进行安装,将五个库全部安装完毕,请注意:os和time库一般来说不需要进行安装,python3环境中会自带



代码实现

# -*- coding:utf8 -*-importrequestsimportjsonfromurllibimportparseimportosimporttimeclassBaiduImageSpider(object):
def__init__(self):
self.json_count=0# 请求到的json文件数量(一个json文件包含30个图像文件)self.url='https://image.baidu.com/search/acjson?tn=resultjson_com&logid=5179920884740494226&ipn=rj&ct' \
'=201326592&is=&fp=result&queryWord={' \
'}&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=-1&z=&ic=0&hd=&latest=&copyright=&word={' \
'}&s=&se=&tab=&width=&height=&face=0&istype=2&qc=&nc=1&fr=&expermode=&nojc=&pn={' \
'}&rn=30&gsm=1e&1635054081427= 'self.directory=r"C:\Users\86180\Desktop\素材\python素材\爬虫测试\{}"# 存储目录  这里需要修改为自己希望保存的目录  {}不要丢self.header= {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ''Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.30 '        }
# 创建存储文件夹defcreate_directory(self, name):
self.directory=self.directory.format(name)
# 如果目录不存在则创建ifnotos.path.exists(self.directory):
os.makedirs(self.directory)
self.directory+=r'\{}'# 获取图像链接defget_image_link(self, url):
list_image_link= []
strhtml=requests.get(url, headers=self.header)  # Get方式获取网页数据jsonInfo=json.loads(strhtml.text)
forindexinrange(30):
list_image_link.append(jsonInfo['data'][index]['thumbURL'])
returnlist_image_link# 下载图片defsave_image(self, img_link, filename):
res=requests.get(img_link, headers=self.header)
ifres.status_code==404:
print(f"图片{img_link}下载出错------->")
withopen(filename, "wb") asf:
f.write(res.content)
print("存储路径:"+filename)
# 入口函数defrun(self):
searchName=input("查询内容:")
searchName_parse=parse.quote(searchName)  # 编码self.create_directory(searchName)
pic_number=0# 图像数量forindexinrange(self.json_count):
pn= (index+1)*30request_url=self.url.format(searchName_parse, searchName_parse, str(pn))
list_image_link=self.get_image_link(request_url)
forlinkinlist_image_link:
pic_number+=1self.save_image(link, self.directory.format(str(pic_number)+'.jpg'))
time.sleep(0.2)  # 休眠0.2秒,防止封ipprint(searchName+"----图像下载完成--------->")
if__name__=='__main__':
spider=BaiduImageSpider()
spider.json_count=10# 定义下载10组图像,也就是三百张spider.run()

爬虫的使用

1.完成上述步骤后,创建一份.py文件,复制以上代码到文件中,然后运行会出现如下图所示界面

image.png

2.输入想要抓取的图片,这里以向日葵为例

image.png

3.从上图可以看出,爬虫开始抓取图片,因为代码默认了抓取300张图片,内存过大,这里只抓取了20多张就结束程序了,并且自动在同一目录下创建了一个同名文件夹,如下图所示

image.png

4.可以看到文件中保存了抓取到的向日葵图片

a30e025c9d648c8a536b02414b1b39b.png


代码注意事项

若想一次性设置图片抓取数量多少,则进行以下修改

抓取图片单组数量设置

上述代码默认一组的抓取数量为30张,所想设置单组的图片抓取数量,则将下图所框选处30修改成自己想要的数量

image.png

抓取图片组别数量设置

上述代码默认一次抓取的图片组的数量为10组,所想自己设置图片抓取的组别数量,则将下图所框选处10修改成自己想要的数量

image.png

目录
相关文章
|
12天前
|
机器学习/深度学习 编解码 Python
Python图片上采样工具 - RealESRGANer
Real-ESRGAN基于深度学习实现图像超分辨率放大,有效改善传统PIL缩放的模糊问题。支持多种模型版本,推荐使用魔搭社区提供的预训练模型,适用于将小图高质量放大至大图,放大倍率越低效果越佳。
|
14天前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
217 0
|
2月前
|
数据采集 存储 JSON
地区电影市场分析:用Python爬虫抓取猫眼/灯塔专业版各地区票房
地区电影市场分析:用Python爬虫抓取猫眼/灯塔专业版各地区票房
|
2月前
|
数据采集 存储 XML
Python爬虫XPath实战:电商商品ID的精准抓取策略
Python爬虫XPath实战:电商商品ID的精准抓取策略
|
5月前
|
数据采集 Web App开发 JavaScript
基于Selenium的Python爬虫抓取动态App图片
基于Selenium的Python爬虫抓取动态App图片
345 68
|
3月前
|
数据采集 存储 监控
Python爬虫实战:批量下载亚马逊商品图片
Python爬虫实战:批量下载亚马逊商品图片
|
5月前
|
数据采集 存储 前端开发
Python爬虫自动化:批量抓取网页中的A链接
Python爬虫自动化:批量抓取网页中的A链接
|
5月前
|
存储 机器学习/深度学习 人工智能
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
本文探讨了多模态RAG系统的最优实现方案,通过模态特定处理与后期融合技术,在性能、准确性和复杂度间达成平衡。系统包含文档分割、内容提取、HTML转换、语义分块及向量化存储五大模块,有效保留结构和关系信息。相比传统方法,该方案显著提升了复杂查询的检索精度(+23%),并支持灵活升级。文章还介绍了查询处理机制与优势对比,为构建高效多模态RAG系统提供了实践指导。
1317 0
多模态RAG实战指南:完整Python代码实现AI同时理解图片、表格和文本
|
14天前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
187 102
|
14天前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
189 104

推荐镜像

更多