开心六月综合激情婷婷|欧美精品成人动漫二区|国产中文字幕综合色|亚洲人在线成视频

    1. 
      
        <b id="zqfy3"><legend id="zqfy3"><fieldset id="zqfy3"></fieldset></legend></b>
          <ul id="zqfy3"></ul>
          <blockquote id="zqfy3"><strong id="zqfy3"><dfn id="zqfy3"></dfn></strong></blockquote>
          <blockquote id="zqfy3"><legend id="zqfy3"></legend></blockquote>
          打開APP
          userphoto
          未登錄

          開通VIP,暢享免費電子書等14項超值服

          開通VIP
          利用開放接口,如何一步步打造自己的獨特圖片網(wǎng)站
          ?

          在進行文章撰寫時,尋找適當(dāng)?shù)呐鋱D是一項重要的任務(wù)。然而,盡管我嘗試在各大網(wǎng)站上尋找合適的圖片資源,但往往面臨兩個主要問題:其一,這些網(wǎng)站大多需要付費使用,這無疑增加了我的經(jīng)濟負擔(dān);其二,即使有些網(wǎng)站提供免費圖片,但其質(zhì)量卻令人堪憂。

          為了解決這個令人頭疼的問題,我自己動手一個搜索圖片的網(wǎng)站,解決了日常文章配圖的問題。整體的界面如下:

          圖片的加載采用瀑布流的模式。

          這個網(wǎng)站是站在巨人的肩膀上完成的,為什么這么說呢?圖片的來源是調(diào)用頭條號的圖片庫,前端是使用github開源的瀑布流插件。

          分析頭條圖片庫的API

          打開頭條號發(fā)布文章,點擊添加圖片,會出現(xiàn)如下圖

          通過分析這個接口,發(fā)現(xiàn)它并沒有做認(rèn)證,攜帶幾個路徑參數(shù)。

          在無痕瀏覽器重放這個接口,這能正常獲取數(shù)據(jù),如下圖:

          現(xiàn)在圖片的數(shù)據(jù)源找到了,可以把它做成接口,給前端用戶調(diào)用了。這里我選擇熟悉的FastAPI做接口。

          接口代碼實現(xiàn)

          從上述分析接口發(fā)現(xiàn),路徑參數(shù)只有三個參數(shù)是動態(tài)變化的。所以,我們把它做成變量的形式

          from pydantic import BaseModel

          class TuotiaoParams(BaseModel):
          page: int=0 #圖片頁數(shù)
          size: int = 30 #展示圖片的數(shù)量
          term: str=None #搜索的關(guān)鍵字

          然后,把請求頭條號API接口封裝成一個函數(shù),方便后續(xù)調(diào)用

          import requests
          from fake_useragent import UserAgent
          from schemas import TuotiaoParams
          from loguru import logger
          def search_pic(params:TuotiaoParams):
          try:

          url = "https://dficimage.toutiao.com/api/proxy/get"
          params = {
          "from": params.page,
          "size": params.size,
          "term": params.term,
          "search_id": 7274062948258316581,
          "user_id": 68783357974,
          "media_id": 1609422238702596,
          "search_from": "search",
          "position": "article_icstock",
          "platform": "toutiaohao",
          "path": "/micro/search"
          }
          res = requests.get(
          url,
          params=params,
          headers={"User-Agent":UserAgent().random},
          timeout=10
          )
          if res.json().get("code") == 1:
          logger.info("獲取頭條的圖片的數(shù)據(jù):{}".format(res.json()))
          return res.json().get("data").get("data").get("hits")
          except Exception as e:
          logger.error('抓取頭條的圖片錯誤:{}'.format(e))

          利用FastAPI把頭條號API做成接口模式

          from  fastapi import FastAPI
          from fastapi.middleware.cors import CORSMiddleware
          from toutiao import search_pic
          from schemas import SearchKeyWork,TuotiaoParams
          import uvicorn

          app = FastAPI()

          # 添加跨域中間件
          app.add_middleware(
          CORSMiddleware,
          allow_origins=["*"], # 允許所有來源訪問
          allow_methods=["*"], # 允許所有HTTP方法
          allow_headers=["*"], # 允許所有HTTP頭
          )


          @app.post("/image_toutaio")
          def iamge_toutiao(params:TuotiaoParams):
          return {"code":1,"data":search_pic(params)}




          if __name__ == "__main__":
          uvicorn.run(app)

          執(zhí)行如下代碼啟動程序,就可以正常訪問接口

          python main.py

          這樣后臺的接口,就完成了。

          前端搭建

          前端采用的github上開源的瀑布流圖片展示模板,然后,自己添加搜索功能的。

          ?

          https://github.com/heikaimu/vue3-waterfall-plugin

          下載vue3-waterfall-plugin項目到本地,執(zhí)行如下代碼安裝依賴

          pnpm install

          安裝完依賴,執(zhí)行如下代碼,啟動前端

          pnpm run dev

          啟動成功之后,輸入想要的圖片進行搜索,如圖

          ?
          • 項目的地址: https://github.com/didiplus/vue3-waterfall-plugin
          • 演示地址: http://img.kwpmp.cn/
          • 演示備用地址: https://cerulean-florentine-527213.netlify.app/
          本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
          打開APP,閱讀全文并永久保存 查看更多類似文章
          猜你喜歡
          類似文章
          FastAPI學(xué)習(xí)-3.get 請求 query params 查詢參數(shù)
          AntD框架的upload組件上傳圖片時使用customRequest方法自定義上傳行為
          2019 年 11 月精選 GitHub 上 幾個牛逼 Python 的項目
          反爬蟲策略手把手教你使用FastAPI來限制接口的訪問速率
          fastapi后臺RBAC系統(tǒng)系列(2)-啟動前端-后端生成數(shù)據(jù)模型寫一個驗證碼生成
          編程語言FastAPI 學(xué)習(xí)之路(四)
          更多類似文章 >>
          生活服務(wù)
          分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
          綁定賬號成功
          后續(xù)可登錄賬號暢享VIP特權(quán)!
          如果VIP功能使用有故障,
          可點擊這里聯(lián)系客服!

          聯(lián)系客服