成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

利用開放接口,如何一步步打造自己的獨特圖片網站

開發
在各大網站上尋找合適的圖片資源,但往往面臨兩個主要問題,為此,我自己動手一個搜索圖片的網站,解決了日常文章配圖的問題。

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

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

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

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

分析頭條圖片庫的API

打開頭條號發布文章,點擊添加圖片,會出現如下圖

通過分析這個接口,發現它并沒有做認證,攜帶幾個路徑參數。

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

現在圖片的數據源找到了,可以把它做成接口,給前端用戶調用了。這里我選擇熟悉的FastAPI做接口。

接口代碼實現

從上述分析接口發現,路徑參數只有三個參數是動態變化的。所以,我們把它做成變量的形式:

from pydantic import BaseModel

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

然后,把請求頭條號API接口封裝成一個函數,方便后續調用:

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("獲取頭條的圖片的數據:{}".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)

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

python main.py

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

前端搭建

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

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

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

pnpm install

安裝完依賴,執行如下代碼,啟動前端:

pnpm run dev

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

  • 項目的地址: https://github.com/didiplus/vue3-waterfall-plugin
  • 演示地址: http://img.kwpmp.cn/
  • 演示備用地址: https://cerulean-florentine-527213.netlify.app/
責任編輯:趙寧寧 來源: 攻城獅成長日記
相關推薦

2018-04-23 14:23:12

2017-01-19 21:08:33

iOS路由構建

2017-12-25 11:50:57

LinuxArch Linux

2019-03-05 14:09:27

Docker存儲容器

2019-07-09 15:23:22

Docker存儲驅動

2018-12-24 10:04:06

Docker存儲驅動

2018-07-13 15:36:52

2019-04-01 10:15:02

2010-03-04 16:28:17

Android核心代碼

2016-11-02 18:54:01

javascript

2024-08-30 08:30:29

CPU操作系統寄存器

2024-09-30 09:56:59

2017-01-06 15:13:25

LinuxVim源代碼

2015-07-27 16:06:16

VMware Thin虛擬化

2013-09-13 13:25:16

html5拖拽

2011-05-10 10:28:55

2018-06-11 15:30:12

2024-08-06 09:29:54

程序機器指令字符串

2020-12-24 11:19:55

JavaMapHashMap

2025-04-03 01:45:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: www.日本国产 | 日本精品在线播放 | 91手机精品视频 | 国产日韩视频在线 | 亚洲成人精品影院 | 亚洲精品乱码久久久久久黑人 | 国产亚洲精品精品国产亚洲综合 | 久久精品一级 | 一道本一区二区 | 午夜视频在线观看视频 | 午夜视频大全 | 91伊人| 亚洲激情网站 | 免费观看av | 视频在线观看亚洲 | 久久最新| 国产精品久久久久久久久久久久午夜片 | 日韩精品在线视频免费观看 | 亚洲 中文 欧美 日韩 在线观看 | 色在线看 | 国产精品有限公司 | 91av免费版 | 精品乱码一区二区三四区 | 国产精品久久久久9999鸭 | 麻豆毛片 | 欧洲亚洲精品久久久久 | 91精品一区二区三区久久久久 | 亚洲免费在线观看 | 一级免费看 | 亚洲一区二区中文字幕 | 欧美精品在线一区二区三区 | 日韩一区二区三区精品 | 国产视频一区二区 | 欧美国产在线一区 | 午夜视频在线观看视频 | 国产视频第一页 | 精品亚洲一区二区三区 | 91av视频在线观看 | 成人h动漫精品一区二区器材 | 久久国产精品99久久久大便 | 亚洲三区在线观看 |