当前位置:首页 > 科技  > 软件

利用开放接口,如何一步步打造自己的独特图片网站

来源: 责编: 时间:2023-09-18 21:41:54 442观看
导读在进行文章撰写时,寻找适当的配图是一项重要的任务。然而,尽管我尝试在各大网站上寻找合适的图片资源,但往往面临两个主要问题:其一,这些网站大多需要付费使用,这无疑增加了我的经济负担;其二,即使有些网站提供免费图片,但其

在进行文章撰写时,寻找适当的配图是一项重要的任务。然而,尽管我尝试在各大网站上寻找合适的图片资源,但往往面临两个主要问题:其一,这些网站大多需要付费使用,这无疑增加了我的经济负担;其二,即使有些网站提供免费图片,但其质量却令人堪忧。zDJ28资讯网——每日最新资讯28at.com

为了解决这个令人头疼的问题,我自己动手一个搜索图片的网站,解决了日常文章配图的问题。整体的界面如下:zDJ28资讯网——每日最新资讯28at.com

zDJ28资讯网——每日最新资讯28at.com

图片的加载采用瀑布流的模式。zDJ28资讯网——每日最新资讯28at.com

这个网站是站在巨人的肩膀上完成的,为什么这么说呢?图片的来源是调用头条号的图片库,前端是使用github开源的瀑布流插件。zDJ28资讯网——每日最新资讯28at.com

分析头条图片库的API

打开头条号发布文章,点击添加图片,会出现如下图zDJ28资讯网——每日最新资讯28at.com

zDJ28资讯网——每日最新资讯28at.com

通过分析这个接口,发现它并没有做认证,携带几个路径参数。zDJ28资讯网——每日最新资讯28at.com

zDJ28资讯网——每日最新资讯28at.com

在无痕浏览器重放这个接口,这能正常获取数据,如下图:zDJ28资讯网——每日最新资讯28at.com

zDJ28资讯网——每日最新资讯28at.com

现在图片的数据源找到了,可以把它做成接口,给前端用户调用了。这里我选择熟悉的FastAPI做接口。zDJ28资讯网——每日最新资讯28at.com

接口代码实现

从上述分析接口发现,路径参数只有三个参数是动态变化的。所以,我们把它做成变量的形式:zDJ28资讯网——每日最新资讯28at.com

from pydantic import BaseModelclass TuotiaoParams(BaseModel):    page: int=0#图片页数    size: int = 30#展示图片的数量    term: str=None#搜索的关键字

然后,把请求头条号API接口封装成一个函数,方便后续调用:zDJ28资讯网——每日最新资讯28at.com

import requestsfrom fake_useragent import UserAgentfrom schemas import TuotiaoParamsfrom loguru import loggerdef 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做成接口模式:zDJ28资讯网——每日最新资讯28at.com

from  fastapi import FastAPIfrom fastapi.middleware.cors import CORSMiddlewarefrom toutiao import search_picfrom schemas import SearchKeyWork,TuotiaoParamsimport uvicornapp = 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)

执行如下代码启动程序,就可以正常访问接口:zDJ28资讯网——每日最新资讯28at.com

python main.py

zDJ28资讯网——每日最新资讯28at.com

这样后台的接口,就完成了。zDJ28资讯网——每日最新资讯28at.com

前端搭建

前端采用的github上开源的瀑布流图片展示模板,然后,自己添加搜索功能的。zDJ28资讯网——每日最新资讯28at.com

https://github.com/heikaimu/vue3-waterfall-pluginzDJ28资讯网——每日最新资讯28at.com

下载vue3-waterfall-plugin项目到本地,执行如下代码安装依赖:zDJ28资讯网——每日最新资讯28at.com

pnpm install

安装完依赖,执行如下代码,启动前端:zDJ28资讯网——每日最新资讯28at.com

pnpm run dev

启动成功之后,输入想要的图片进行搜索,如图:zDJ28资讯网——每日最新资讯28at.com

zDJ28资讯网——每日最新资讯28at.com

  • 项目的地址: https://github.com/didiplus/vue3-waterfall-plugin
  • 演示地址: http://img.kwpmp.cn/
  • 演示备用地址: https://cerulean-florentine-527213lify.app/

本文链接:http://www.28at.com/showinfo-26-10473-0.html利用开放接口,如何一步步打造自己的独特图片网站

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Python应知小技巧:如何用更少的代码做更多的事情

下一篇: C语言操作寄存器和函数指针

标签:
  • 热门焦点
  • 7月安卓手机性能榜:红魔8S Pro再夺榜首

    7月份的手机市场风平浪静,除了红魔和努比亚带来了两款搭载骁龙8Gen2领先版处理器的新机之外,别的也想不到有什么新品了,这也正常,通常6月7月都是手机厂商修整的时间,进入8月份之
  • CSS单标签实现转转logo

    转转品牌升级后更新了全新的Logo,今天我们用纯CSS来实现转转的新Logo,为了有一定的挑战性,这里我们只使用一个标签实现,将最大化的使用CSS能力完成Logo的绘制与动画效果。新logo
  • 三言两语说透设计模式的艺术-单例模式

    写在前面单例模式是一种常用的软件设计模式,它所创建的对象只有一个实例,且该实例易于被外界访问。单例对象由于只有一个实例,所以它可以方便地被系统中的其他对象共享,从而减少
  • 一个注解实现接口幂等,这样才优雅!

    场景码猿慢病云管理系统中其实高并发的场景不是很多,没有必要每个接口都去考虑并发高的场景,比如添加住院患者的这个接口,具体的业务代码就不贴了,业务伪代码如下:图片上述代码有
  • 零售大模型“干中学”,攀爬数字化珠峰

    文/侯煜编辑/cc来源/华尔街科技眼对于绝大多数登山爱好者而言,攀爬珠穆朗玛峰可谓终极目标。攀登珠峰的商业路线有两条,一是尼泊尔境内的南坡路线,一是中国境内的北坡路线。相
  • 花7万退货退款无门:谁在纵容淘宝珠宝商家造假?

    来源:极点商业作者:杨铭在淘宝购买珠宝玉石后,因为保证金不够赔付,店铺关闭,退货退款难、维权无门的比比皆是。“提供相关产品鉴定证书,支持全国复检,可以30天无理由退换货。&
  • 重估百度丨大模型,能撑起百度的“今天”吗?

    自象限原创 作者|程心 罗辑2023年之前,对于自己的“今天”,百度也很迷茫。“新业务到 2022 年底还是 0,希望 2023 年出来一个 1。”这是2022年底,李彦宏
  • 联想YOGA 16s 2022笔记本将要推出,屏幕支持触控功能

    联想此前宣布,将于11月2日19:30召开联想秋季轻薄新品发布会,推出联想 YOGA 16s 2022 笔记本等新品。官方称,YOGA 16s 2022 笔记本将搭载 16 英寸屏幕,并且是一
  • Meta盲目扩张致超万人被裁,重金押注元宇宙而前景未明

    图片来源:图虫创意日前,Meta创始人兼CEO 马克·扎克伯发布公开信,宣布Meta计划裁员超11000人,占其员工总数13%。他公开承认了自己的预判失误:“不仅
Top