【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

目录
相关文章
|
2月前
|
Python
Python实用记录(六):如何打开txt文档并删除指定绝对路径下图片
这篇文章介绍了如何使用Python打开txt文档,删除文档中指定路径的图片,并提供了一段示例代码来展示这一过程。
36 1
|
2月前
|
计算机视觉 Python
Python实用记录(一):如何将不同类型视频按关键帧提取并保存图片,实现图片裁剪功能
这篇文章介绍了如何使用Python和OpenCV库从不同格式的视频文件中按关键帧提取图片,并展示了图片裁剪的方法。
101 0
|
2月前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
2月前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
176 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
2月前
|
数据采集 Python
python爬虫抓取91处理网
本人是个爬虫小萌新,看了网上教程学着做爬虫爬取91处理网www.91chuli.com,如果有什么问题请大佬们反馈,谢谢。
32 4
|
2月前
|
数据采集 Java Python
如何用Python同时抓取多个网页:深入ThreadPoolExecutor
在信息化时代,实时数据的获取对体育赛事爱好者、数据分析师和投注行业至关重要。本文介绍了如何使用Python的`ThreadPoolExecutor`结合代理IP和请求头设置,高效稳定地抓取五大足球联赛的实时比赛信息。通过多线程并发处理,解决了抓取效率低、请求限制等问题,提供了详细的代码示例和解析方法。
如何用Python同时抓取多个网页:深入ThreadPoolExecutor
|
2月前
|
Python
Python实用记录(四):os模块-去后缀或者改后缀/指定目录下图片或者子目录图片写入txt/csv
本文介绍了如何使用Python的os模块来操作文件,包括更改文件后缀、分割文件路径和后缀、将指定目录下的所有图片写入txt文档,以及将指定目录下所有子目录中的图片写入csv文档,并为每个子目录分配一个标签。
28 1
|
2月前
|
编解码 UED Python
Python批量修改指定目录下图片的大小名文章
Python批量修改指定目录下图片的大小名文章
22 1
|
2月前
|
Python
Python实现图片的拼接
Python实现图片的拼接
21 0
|
7月前
|
数据安全/隐私保护 Python
Python3给图片添加水印
Python3给图片添加水印
107 1