世界焦点!python做图片搜索引擎并保存到本地详情
前言
我们先说一下思路:先对目标网站发送请求,获取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=©right=&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 #每执行一次加1 print(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=©right=&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 #每执行一次加1 print(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""保存成功") #提示保存成功
我们来看看运行结果怎么样:
可以看到我搜索的是柴犬,对源码中的每个图片链接进行发送并保存。
那我保存的图片是否是柴犬呢?我们看看吧:
可以看到保存的就是柴犬图片并且创建了一个文件夹!
到此这篇关于python做图片搜索引擎并保存到本地详情的文章就介绍到这了,更多相关python图片搜索引擎内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 1现代和起亚上半年出口20万辆新能源汽车同比增长30.6%
- 2如何让居民5分钟使用到各种设施?沙特“线性城市”来了
- 3AMD实现连续8个季度的增长 季度营收首次突破60亿美元利润更是翻倍
- 4转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 5充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 6好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 7名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 8亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战
- 9京东绿色建材线上平台上线 新增用户70%来自下沉市场
- 10网红淘品牌“七格格”chuu在北京又开一家店 潮人新宠chuu能红多久