ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

必应搜索每日壁纸的爬虫实现(4K/8K)

2022-06-18 23:01:17  阅读:288  来源: 互联网

标签:8K www 爬虫 4K 壁纸 com 图片


经常或偶尔使用必应搜索的小伙伴都知道,必应搜索每天都会更新一张背景壁纸,有时候是一段视频,据了解必应搜索的每日壁纸十年如一日,从未间断,最早可以追溯到2010年1月。。。

我经常使用必应查找资料,所以经常发现:哎哟,今天的壁纸真好看。

时间一长就有了想法,来做个网站吧,说干就干:分析必应的壁纸数据来源、分析可获取的壁纸尺寸、是否可以抓取历史的必应每日壁纸、找个合适的域名、思考合适的网站结构和页面布局等~

一、必应每日壁纸数据来源

打开 必应搜索,按Ctrl + Alt + I打开调试工具 > 网络,切换到 Fetch/XHR,用最笨的方法挨个查看调用的接口,最后定位到这个接口:https://www.bing.com/hp/api/model?mkt=zh-CN,右键新标签页打开,可以直接访问,开发工具可以看到每日壁纸数据在 response.data.MediaContents 中,只有7行,看来只能得到最近七天的壁纸数据,从必应搜索界面的壁纸切换也可以证实。

此时心中有个小疑问:以前的壁纸获取不到吗?先不管这个,先看看壁纸有没有高清晰的吧!

二、可获取的壁纸尺寸(4K/8K清晰度)

从接口的返回response.data.MediaContents[0].ImageContent.Image中可以得到两个图片地址,分别是UrlWallpaper,复制到新标签中,加上前缀 https://www.bing.com 查看图片,分别是不带水印的 1920x1080 和带水印的 1920x1200,再次检查了 model 接口,没有发现更多的图片地址,难道没有4K/8K的图片吗?通过搜索引擎查找相关资料,确定是有4K图片资源的,最终确定需要抓取的图片有两个(带水印的就不要了):

  • (1920x1080)https://www.bing.com/th?id=OHR.Balsamroot_ZH-CN9456182640_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&qlt=100
  • (4K/8K)https://www.bing.com/th?id=OHR.Balsamroot_ZH-CN9456182640_UHD.jpg&rf=LaDigue_UHD.jpg&pid=hp&rs=1&c=4&qlt=100

有趣的是,4K/8K的图片地址不是每次都会返回4K/8K图片尺寸的,有时是1920的图片,所以这里要通过判断,如果没有返回4K/8K的,那么要在图片地址上再加两个参数,想知道的小伙伴在底部留言吧,文章没人看说出来有什么意思呢~^_^

三、爬虫的实现

爬虫的具体实现在这里不详细些了,相信会的都会,使用自己熟悉的语言都是一套撸,请求接口、解析HTML提取需要的数据、下载壁纸图片、存数据库等。。写这文章只是想告诉大家,必应搜索其实提供了4K甚至8K的图片,只是没有在接口给出来而已,细心胆大的小伙伴早都从URL上尝试出来了,O(∩_∩)O哈哈~ 你如果不相信可以来我网站瞅瞅 http://www.bingbz.com/image/OHR.OiaVillage_ZH-CN2495652522

四、www.bingbz.com 壁纸标签系统

顺便说一说自己的心得,通过开发这个壁纸网站,最近还学会了第一次用数据库做简单的相似推荐,准确度的话还行吧,。。

我是通过给每张壁纸加标签,用壁纸标签交叉计算相似度来实现壁纸的相似推荐,目前壁纸数量比较少,壁纸数量越多准确度越高。后来想了想其实可以做到更精确,每张壁纸在添加标签时,给标签分配一个匹配度,这样再结合壁纸和标签的匹配值就能把相似推荐做得更好啦,只是这样太麻烦了,所以不了了之。


最后,欢迎参观我的网站,必应高清壁纸:http://www.bingbz.com

标签:8K,www,爬虫,4K,壁纸,com,图片
来源: https://www.cnblogs.com/sytana/p/16384288.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有