我们先说一下思路:先对目标网站发送请求,获取html源码,然后对源码里面的所以图片链接进行筛选,然后再次对图片链接发送请求,然后保存。

        思路大致是这样,话不多说,直接上代码:

用到的模块:

import requests  #请求库  第三方库,需要安装: pip install requests
import re        #筛选库,py自带,无需安装

查找接口:

打开F12打开开发者工具,点击网络、Fetch/XHR、载荷、依次点下去,可以看到查询参数有两个,分别是:word:风景图        queryWord:风景图

我们可以利用这两个查询参数进行自定义

我们要查找到真实的url地址,然后对url查询参数自定义,点击旁边的标头,我们看见了刚才的查询参数:word   和queryWord这两个参数,

接下来,我们使用让用户输入参数值,然后进行传参到url地址里面的word和queryWord参数,

那么word和queryWord参数,url地址里面就不能有了值了,使用{}被传参,后面使用format函数对输入的参数进行传参{},最后形成我们需要的网址

word = input('请输入要搜索的图片:')
url = 'https://image.baidu.com/search/acjson?tn=resultjson_com&logid=5853806806594529489&ipn=rj&ct=201326592&is=&fp=result&fr=ala&word={}&queryWord={}&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=&copyright=&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&expermode=&nojc=&isAsync=&pn=30&rn=30&gsm=1e&1658411978178='.format(word, word)
print(url) 打开网址就是你输入的内容

下一步我们要对请求头进行伪装,防止被服务器识别为爬虫程序

headers = {"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36 Edg/99.0.1150.39'}

判断该文件夹是否存在,存在则创建,不存在则覆盖;发送请求并打印源码

if not os.path.exists(files): #假如没有文件执行以下代码:os.makedirs(files) #有文件夹则覆盖,没有则创建req=requests.get(url=url,headers=headers).text #获取源码
print(req)  #输出源码

正则式:

res='"thumbURL":"(.*?)"' #正则式
zhengze=re.findall(res,req)   #调用findall函数进行匹配

遍历url地址并发送请求

i=1 #计数
for a in zhengze: #遍历刷选后的网址        get_image(a,i) #将遍历后的url地址传到get-image这个函数i+=1  #每执行一次加1print(a) #打印地址response=requests.get(url=a,headers=headers).content #获取二进制文件

设置保存类型及保存位置

file=files+word+str(i)+'张.jpg' #设置 文件夹 路径+文件名以及类型 (完整地址)with open(file,'wb') as f: #写二级制文件类型,并修改变量名f.write(response) #把获取到的二进制文件写入print(word+str(i)+'张.jpg''保存成功') #提示保存成功

那么接下来奉上完整源码:

import re   #筛选url
import requests  #请求
import os  #创建文件夹
word = input('请输入要搜索的图片:')
url = 'https://image.baidu.com/search/acjson?tn=resultjson_com&logid=5853806806594529489&ipn=rj&ct=201326592&is=&fp=result&fr=ala&word={}&queryWord={}&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=&copyright=&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&expermode=&nojc=&isAsync=&pn=30&rn=30&gsm=1e&1658411978178='.format(word, word)
#伪装浏览器
headers = {"User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36 Edg/99.0.1150.39'}files='D:/{}/'.format(word) #创建文件夹路径
if not os.path.exists(files): #假如没有文件执行以下代码:os.makedirs(files) #有文件夹则覆盖,没有则创建
req=requests.get(url=url,headers=headers).text #获取源码
res='"thumbURL":"(.*?)"' #正则式
zhengze=re.findall(res,req)  #筛选
i=1 #计数
for a in zhengze: #遍历刷选后的网址        get_image(a,i) #将遍历后的url地址传到get-image这个函数i+=1  #每执行一次加1print(a) #打印地址response=requests.get(url=a,headers=headers).content #获取二进制文件file=files+word+str(i)+'张.jpg' #设置 文件夹 路径+文件名以及类型 (完整地址)with open(file,'wb') as f: #写二级制文件类型,并修改变量名f.write(response) #把获取到的二进制文件写入print(word+str(i)+'张.jpg''保存成功') #提示保存成功

我们来看看运行结果怎么样:

可以看到我搜索的是柴犬,对源码中的每个图片链接进行发送并保存。

那我保存的图片是否是柴犬呢?我们看看吧:

可以看到保存的就是柴犬图片并且创建了一个文件夹!

PS:如有侵权,烦告知,立马进行删除道歉!

用python做图片搜索引擎并保存到本地相关推荐

  1. 用python写搜索引擎_用python做一个搜索引擎(Pylucene)的实例代码

    1.什么是搜索引擎? 搜索引擎是"对网络信息资源进行搜集整理并提供信息查询服务的系统,包括信息搜集.信息整理和用户查询三部分".如图1是搜索引擎的一般结构,信息搜集模块从网络采集信 ...

  2. 在哪里能收到python实例代码-用python做一个搜索引擎(Pylucene)的实例代码

    1.什么是搜索引擎? 搜索引擎是"对网络信息资源进行搜集整理并提供信息查询服务的系统,包括信息搜集.信息整理和用户查询三部分".如图1是搜索引擎的一般结构,信息搜集模块从网络采集信 ...

  3. Python调整图片大小并保存调整后的图像

    Python调整图片大小并保存调整后的图像 目录 Python调整图片大小并保存调整后的图像 #原始图像

  4. python下载图片并保存_Python爬虫获取图片并下载保存至本地的实例

    1.抓取煎蛋网上的图片. 2.代码如下: import urllib.request import os #to open the url def url_open(url): req=urllib. ...

  5. Python利用bs4批量抓取网页图片并下载保存至本地

    Python利用bs4批量抓取网页图片并下载保存至本地 使用bs4抓取网页图片,bs4解析比较简单,需要预先了解一些html知识,bs4的逻辑简单,编写难度较低.本例以抓取某壁纸网站中的壁纸为例.(b ...

  6. 短视频平台开发,将图片、视频保存到本地的相册中

    短视频平台开发,将图片.视频保存到本地的相册中实现的相关代码 获取本地相册 - (IBAction)goodsButton1Touch:(id)sender {//拿到获取相册的权限if([UIIma ...

  7. html2canvas将html代码生成canvas转换成图片,并且保存到本地

    html2canvas将html代码生成canvas转换成图片,并且保存到本地 html2canvas 将html转换成canvas展示 convertCanvasToImage 从canvas提取为 ...

  8. 用python做一个搜索引擎(Pylucene)

    什么是搜索引擎? 搜索引擎是"对网络信息资源进行搜集整理并提供信息查询服务的系统,包括信息搜集.信息整理和用户查询三部分".如图1是搜索引擎的一般结构,信息搜集模块从网络采集信息到 ...

  9. 使用 Python 构建图片搜索引擎

    引言 我们经常使用搜索引擎.当我们需要查询时,我们可以使用像 Google 这样的搜索引擎来检索最相关的答案. 大多数查询格式是基于文本的.但并不是大多数时候,文本对于找到相关的答案是非常有用的. 例 ...

最新文章

  1. 更多Java之行内容,需要看直播请关注微薄
  2. layui select 赋值_layui给下拉框及日期组件赋值
  3. PHP CURL 多线程 GET/POST 类
  4. 1.4激活函数-带隐层的神经网络tf实战
  5. 辽宁交通职业技术学校计算机好不好,辽宁省交通高等专科学校信息工程系
  6. 微软一站式示例代码库(中文版)2011-05-13版本, 新添加Windows Azure, WinForms等16个Sample...
  7. CentOS 7安装megacli
  8. 淘宝推荐系统简介分享总结
  9. 智慧医院建设方案_【聚焦医改】安泰创新智慧医院建设方案惊艳中国医院院长大会!...
  10. FastDFS简单介绍
  11. 《汇编语言》——王爽第三版笔记(1-3章)
  12. 土方计算软件FastTFT V15.1.0更新说明(支持AutoCAD2020平台)
  13. 10大城市硬科技指数发布,“硬科技+在大西安”高峰论坛圆满落幕
  14. 如何设置打开图片的默认方式
  15. 统计学原理 数据的来源
  16. Windows 10配置GPU环境
  17. Htmlunit 使用总结
  18. Oracle 数据库12c 16大新特性总结
  19. vivo版本发布平台:带宽智能调控优化实践-平台产品系列03
  20. Android 蓝牙APP设计

热门文章

  1. 国外android内存清理工具,小内存手机有救了,这款清理神器,瞬间多出几个G的内存...
  2. AJAX的全称是什么? 介绍一下AJAX
  3. APP在后台被系统杀死的六种主要原因
  4. 计算机系统英语参考文献短,计算机英文外文外文 计算机英文参考文献怎么写...
  5. qa 芯片测试_芯片测试的几个术语及解释
  6. k8s 学习 kubeadm join 超时报错 : error uploading crisocket
  7. 机器学习 第三节 第十课
  8. 常见Cppcheck检查问题总结(静态检查错误)
  9. Nginx运维之一 反向代理、动静分离、负载均衡
  10. 第二届全国智能制造(中国制造2025)创新创业大赛华南人工智能专项赛决赛圆满举办