欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python做圖片搜索引擎并保存到本地詳情

 更新時(shí)間:2022年08月10日 11:46:34   作者:?王馨雅?  
這篇文章主要介紹了python做圖片搜索引擎并保存到本地詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下

前言

我們先說(shuō)一下思路:先對(duì)目標(biāo)網(wǎng)站發(fā)送請(qǐng)求,獲取html源碼,然后對(duì)源碼里面的所以圖片鏈接進(jìn)行篩選,然后再次對(duì)圖片鏈接發(fā)送請(qǐng)求,然后保存。

思路大致是這樣,話不多說(shuō),直接上代碼:

用到的模塊:

import requests  #請(qǐng)求庫(kù)  第三方庫(kù),需要安裝: pip install requests
import re        #篩選庫(kù),py自帶,無(wú)需安裝

查找接口:

打開F12打開開發(fā)者工具,點(diǎn)擊網(wǎng)絡(luò)、Fetch/XHR、載荷、依次點(diǎn)下去,可以看到查詢參數(shù)有兩個(gè),分別是:word:風(fēng)景圖        queryWord:風(fēng)景圖

我們可以利用這兩個(gè)查詢參數(shù)進(jìn)行自定義:

我們要查找到真實(shí)的url地址,然后對(duì)url查詢參數(shù)自定義,點(diǎn)擊旁邊的標(biāo)頭,我們看見了剛才的查詢參數(shù):word   和queryWord這兩個(gè)參數(shù),

接下來(lái),我們使用讓用戶輸入?yún)?shù)值,然后進(jìn)行傳參到url地址里面的word和queryWord參數(shù),

那么word和queryWord參數(shù),url地址里面就不能有了值了,使用{}被傳參,后面使用format函數(shù)對(duì)輸入的參數(shù)進(jìn)行傳參{},最后形成我們需要的網(wǎng)址

word = input('請(qǐng)輸入要搜索的圖片:')
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) 打開網(wǎng)址就是你輸入的內(nèi)容

下一步我們要對(duì)請(qǐng)求頭進(jìn)行偽裝,防止被服務(wù)器識(shí)別為爬蟲程序

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'}

判斷該文件夾是否存在,存在則創(chuàng)建,不存在則覆蓋;發(fā)送請(qǐng)求并打印源碼

if not os.path.exists(files): #假如沒(méi)有文件執(zhí)行以下代碼:
    os.makedirs(files) #有文件夾則覆蓋,沒(méi)有則創(chuàng)建
 
req=requests.get(url=url,headers=headers).text #獲取源碼
print(req)  #輸出源碼

正則式:

res='"thumbURL":"(.*?)"' #正則式
zhengze=re.findall(res,req)   #調(diào)用findall函數(shù)進(jìn)行匹配

遍歷url地址并發(fā)送請(qǐng)求

i=1 #計(jì)數(shù)
for a in zhengze: #遍歷刷選后的網(wǎng)址        get_image(a,i) #將遍歷后的url地址傳到get-image這個(gè)函數(shù)
    i+=1  #每執(zhí)行一次加1
    print(a) #打印地址
    response=requests.get(url=a,headers=headers).content #獲取二進(jìn)制文件

設(shè)置保存類型及保存位置

    file=files+word+str(i)+'張.jpg' #設(shè)置 文件夾 路徑+文件名以及類型 (完整地址)
    with open(file,'wb') as f: #寫二級(jí)制文件類型,并修改變量名
        f.write(response) #把獲取到的二進(jìn)制文件寫入
        print(word+str(i)+'張.jpg''保存成功') #提示保存成功

那么接下來(lái)奉上完整源碼:

import re   #篩選url
import requests  #請(qǐng)求
import os  #創(chuàng)建文件夾
word = input('請(qǐng)輸入要搜索的圖片:')
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) #創(chuàng)建文件夾路徑
if not os.path.exists(files): #假如沒(méi)有文件執(zhí)行以下代碼:
    os.makedirs(files) #有文件夾則覆蓋,沒(méi)有則創(chuàng)建
req=requests.get(url=url,headers=headers).text #獲取源碼
res='"thumbURL":"(.*?)"' #正則式
zhengze=re.findall(res,req)  #篩選
i=1 #計(jì)數(shù)
for a in zhengze: #遍歷刷選后的網(wǎng)址        get_image(a,i) #將遍歷后的url地址傳到get-image這個(gè)函數(shù)
    i+=1  #每執(zhí)行一次加1
    print(a) #打印地址
    response=requests.get(url=a,headers=headers).content #獲取二進(jìn)制文件
    file=files+word+str(i)+'張.jpg' #設(shè)置 文件夾 路徑+文件名以及類型 (完整地址)
    with open(file,'wb') as f: #寫二級(jí)制文件類型,并修改變量名
        f.write(response) #把獲取到的二進(jìn)制文件寫入
        print(word+str(i)+'張.jpg''保存成功') #提示保存成功

我們來(lái)看看運(yùn)行結(jié)果怎么樣:

 可以看到我搜索的是柴犬,對(duì)源碼中的每個(gè)圖片鏈接進(jìn)行發(fā)送并保存。

那我保存的圖片是否是柴犬呢?我們看看吧:

可以看到保存的就是柴犬圖片并且創(chuàng)建了一個(gè)文件夾!

到此這篇關(guān)于python做圖片搜索引擎并保存到本地詳情的文章就介紹到這了,更多相關(guān)python圖片搜索引擎內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中base64加密解密方法實(shí)例分析

    python中base64加密解密方法實(shí)例分析

    這篇文章主要介紹了python中base64加密解密方法,實(shí)例分析了base64加密解密的原理、用途與相關(guān)使用技巧,需要的朋友可以參考下
    2015-05-05
  • 基于python 字符編碼的理解

    基于python 字符編碼的理解

    下面小編就為大家?guī)?lái)一篇基于python 字符編碼的理解。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-09-09
  • windows下python 3.6.4安裝配置圖文教程

    windows下python 3.6.4安裝配置圖文教程

    這篇文章主要為大家詳細(xì)介紹了windows下python 3.6.4安裝配置圖文教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • python字符串拼接+和join的區(qū)別詳解

    python字符串拼接+和join的區(qū)別詳解

    這篇文章主要給大家介紹了關(guān)于python字符串拼接+和join的區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • python實(shí)操練習(xí)案例(六)

    python實(shí)操練習(xí)案例(六)

    這篇文章主要介紹了python實(shí)操練習(xí)案例,前面也在陸續(xù)的向大家分享了python實(shí)操練習(xí)的案例,今天小編繼續(xù)向大家分享python實(shí)操練習(xí)案例的案例,需要的小伙伴可以參考一下
    2022-02-02
  • python 實(shí)現(xiàn)ping測(cè)試延遲的兩種方法

    python 實(shí)現(xiàn)ping測(cè)試延遲的兩種方法

    這篇文章主要介紹了python 實(shí)現(xiàn)ping測(cè)試延遲的兩種方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • python rsa-oaep加密的示例代碼

    python rsa-oaep加密的示例代碼

    這篇文章主要介紹了python rsa-oaep加密示例的示例代碼,幫助大家更好的利用python加解密,感興趣的朋友可以了解下
    2020-09-09
  • Python numpy.zero() 初始化矩陣實(shí)例

    Python numpy.zero() 初始化矩陣實(shí)例

    今天小編就為大家分享一篇Python numpy.zero() 初始化矩陣實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-11-11
  • Python實(shí)現(xiàn)位圖分割的效果

    Python實(shí)現(xiàn)位圖分割的效果

    目前網(wǎng)絡(luò)上大多為用C++或者M(jìn)atlab編寫實(shí)現(xiàn)位圖分割,所以本文將使用Python實(shí)現(xiàn)位圖分割這一效果,代碼簡(jiǎn)單易懂,感興趣的小伙伴可以關(guān)注一下
    2021-11-11
  • Python中使用tarfile壓縮、解壓tar歸檔文件示例

    Python中使用tarfile壓縮、解壓tar歸檔文件示例

    這篇文章主要介紹了Python中使用tarfile壓縮、解壓tar歸檔文件示例,本文直接給出解壓和壓縮代碼示例,需要的朋友可以參考下
    2015-04-04

最新評(píng)論