...

  • 语言 go
  • 直接贴代码

语言 go

其实python 更加方便,但是不好打包,,不说,go就是香

直接贴代码

原本以为,还要一些其他的东西,但是发现直接赢刚就是完事,,代码简单,这里不再赘述,直接
go bulid -o picture . 就可以了

package mainimport ("encoding/json""flag""fmt""io/ioutil""net/http""net/url""strings""time"
)/*
@Time : 2020/9/12 23:32
@Author : Firewine
@File : picture
@Software: GoLand
@Description:  爬取bing 壁纸
*//*分析:1. 手机端
https://cn.bing.com/th?id=OHR.MedievalRocamadour_ZH-CN7063423495_480x800.jpg&rf=LaDigue_1920x1080.jpg&pid=hp
https://cn.bing.com/th?id=OHR.SangreCristoDunes_ZH-CN7193190503_480x800.jpg&rf=LaDigue_1920x1080.jpg&pid=hp2. pc
https://cn.bing.com/th?id=OHR.MedievalRocamadour_ZH-CN7063423495_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp12 : 相同参数rf ,pid(可忽略)3. 获取后面链接
https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&nc=1599925134238&pid=hp需要参数 : format ,ids, n  , nc(时间戳)  pid*/
const (referer         = "https://cn.bing.com/"foundUrl        = "https://cn.bing.com/HPImageArchive.aspx"userAgentPc     = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0"userAgentMobile = "Mozilla/5.0 (Linux; Android 7.0; SM-G892A Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/67.0.3396.87 Mobile Safari/537.36"sizePC = "1920x1080"sizeMobile = "480x800")var InputPc = flag.String("pcSize",sizePC , "input size of pc eg: 1920x1080 or 1920*1080")
var InputMobile = flag.String("mobileSize", sizeMobile, "input size of mobile eg: 480x800 or 480*800")// 爬壁纸,两种手机,pc
func GetPicture(mobile string,pc string) {// client 客户端client := http.Client{}fullUrl := getBase(client)getPc(client, fullUrl,pc)getMobile(client, fullUrl,mobile)fmt.Println("获取完成")
}
func getBase(client http.Client) (fullUrl string) {// 添加参数params := url.Values{}params.Add("format", "js")params.Add("ids", "0")params.Add("n", "1")params.Add("nc", string(time.Now().UnixNano()))params.Add("pid", "pd")// 生成 urlUrl, err := url.Parse(foundUrl)if err != nil {fmt.Println(err)return}Url.RawQuery = params.Encode()request, err := http.NewRequest("GET", Url.String(), nil)if err != nil {fmt.Println(err)return}request.Header.Add("Referer", "https://cn.bing.com/")request.Header.Add("Host", "cn.bing.com")request.Header.Add("User-Agent", userAgentPc)resp, _ := client.Do(request)defer resp.Body.Close()body, _ := ioutil.ReadAll(resp.Body)//fmt.Printf(string(body))maps := map[string]interface{}{}_ = json.Unmarshal(body, &maps)// 获取image metaimage := maps["images"].([]interface{})[0].(map[string]interface{})fullUrl = image["url"].(string)//urlBase = image["urlbase"].(string)return fullUrl
}
func getPc(client http.Client, fullUrl string, pc string) {uurl := referer + fullUrl// 生成 urlUrl, err := url.Parse(uurl)if err != nil {fmt.Println(err)return}req, err := http.NewRequest("GET", Url.String(), nil)if err != nil {fmt.Println(err)return}//req.Response.Header.Add("content-type","image/jpeg")//fmt.Println(Url.String())resp, _ := client.Do(req)resp.Header.Add("content-type", "image/jpeg")defer resp.Body.Close()body, _ := ioutil.ReadAll(resp.Body)err = ioutil.WriteFile(time.Now().Format("20060102_PC")+".jpeg", body, 644)if err != nil {fmt.Println(err)return}}
func getMobile(client http.Client, fullUrl string, mobile string) {replace := strings.Replace(fullUrl, "1920x1080", mobile, 1)uurl := referer + replace// 生成 urlUrl, err := url.Parse(uurl)if err != nil {fmt.Println(err)return}req, err := http.NewRequest("GET", Url.String(), nil)if err != nil {fmt.Println(err)return}req.Header.Add("User-Agent", userAgentPc)//req.Response.Header.Add("content-type","image/jpeg")//fmt.Println(Url.String())resp, _ := client.Do(req)resp.Header.Add("content-type", "image/jpeg")defer resp.Body.Close()body, _ := ioutil.ReadAll(resp.Body)err = ioutil.WriteFile(time.Now().Format("20060102_mobile")+".jpeg", body, 644)if err != nil {fmt.Println(err)return}
}func main() {flag.Parse()mobileSize := ""pcSize := ""if *InputMobile != ""{if strings.Contains(*InputMobile,"*"){mobileSize = strings.Replace(*InputMobile, "*", "x", 1)}mobileSize = *InputMobile}else {mobileSize = sizeMobile}if *InputPc != ""{if strings.Contains(*InputPc,"*"){pcSize = strings.Replace(*InputPc, "*", "x", 1)}pcSize = *InputPc}else {pcSize = sizePC}GetPicture(mobileSize,pcSize)
}

双击下载当日bing壁纸相关推荐

  1. 建了个网站,可以下载每日bing壁纸

    每日bing壁纸 地址 : http://www.rampage.xin/bing/

  2. 必应壁纸php,PHP版Bing壁纸下载源码

    写了个小程序,用来下载Bing壁纸,有访问就会自动下载最新7天的,然后保存在服务器. http://bing.menglei.info/ 原理很简单,使用bing的接口 bing的接口及参数说明 ht ...

  3. python主题壁纸下载_Python 下载Bing壁纸

    这个示例使用的Python版本为3.7版本, 一.bing壁纸接口 访问bing的官网,通过浏览器开发者工具,查看网络可以找到一个请求壁纸的接口,至于怎么判断的,我是发现当我把鼠标放在切换壁纸的左右箭 ...

  4. python主题壁纸下载_Python 下载Bing壁纸的示例

    这个示例使用的Python版本为3.7版本, 一.bing壁纸接口 访问bing的官网,通过浏览器开发者工具,查看网络可以找到一个请求壁纸的接口,至于怎么判断的,我是发现当我把鼠标放在切换壁纸的左右箭 ...

  5. java一键换壁纸_Java 版下载必应每日壁纸并自动设置 Windows 系统桌面(改编自 C# 版)...

    哈哈,好久没有写博客了,已经荒废了,前几天在某 IT 网站看到一个用 C# 写的设置必应每日壁纸为 Windows 系统桌面,看了看源码是通过调用 User32.dll 进行设置的,刚刚最近做的项目更 ...

  6. linux自动刷新桌面,Ubuntu下实现用Python开机自动更新壁纸为bing壁纸

    因为用的Windows Phone的手机,里面有一个手机锁屏每天自动更新为bing的壁纸,用着挺好的,遂想在Ubuntu下实现这个功能,断断续续折腾了一两个星期,惭愧.不过好在最终还是将所有的功能实现 ...

  7. 使用Python获取bing壁纸接口

    原文地址–>点击进入阅读 注意:该接口和代码仅供学习使用!请勿将传回的壁纸用于非法用途!请尊重版权!树立版权意识! 由于读者自身行为导致的侵权,作者概不负责! Bing壁纸 Bing的壁纸是每天 ...

  8. Python爬虫——爬取Bing壁纸

    个人作为获取壁纸的小脚本 所以添加了random模块,壁纸以日期命名,每天随机领取一张新壁纸 使用requests库爬取,re正则提取数据 使用PIL库 将下载的壁纸自动展示 # -*- coding ...

  9. 官方bing壁纸软件-bing wallpaper

    更新内容:官方bing壁纸软件-bing wallpaper 官方发布了一款bing壁纸软件:bing wallpaper 下载安装中会有两个选项:将bing设为首页和将bing设为默认搜索.根据个人 ...

最新文章

  1. java画满天星_java_java实现的满天星效果实例,本文实例讲述了java实现满天星 - phpStudy...
  2. Java中的享元设计模式,涨姿势了!
  3. 【Python】编程笔记7
  4. Android UI开发第三十三篇——Navigation Drawer For Android API 7
  5. MySQL 错误 #1055
  6. java jsoup获取cookie_java – 如何使用jsoup维护变量cookie和会话?
  7. VM安装虚拟机及其破解密码
  8. python坐标系转换库_转载:python库Pyproj进行坐标转换
  9. swf播放器air android 版,网极SWF播放器安卓版
  10. android 7.1 开机速度优化记录
  11. 如何以管理员身份运行powerShell
  12. 计算机与信息技术基础读书笔记,信息技术读书笔记
  13. 我对写博客的一点感悟
  14. 即将拉开序幕!武汉市人工智能领域技术成果征集内容、范围和相关要求
  15. mysql count 去重复_mysql – 忽略COUNT中的重复行
  16. css3之BFC、IFC、GFC和FFC
  17. 网易测试开发岗面试经历
  18. thingsboard中的报警配置
  19. 中国高校计算机大赛--网络技术挑战赛
  20. Scheme 语言开发工具DrRacket下载,安装

热门文章

  1. 学习CC2541开发笔记
  2. 2022内蒙古通辽经济技术开发区社区工作人员招聘精选试题及答案
  3. 如何把PDF转换成长图?分享两种可以实现的方法
  4. c语言中int代表什么变量,c语言中int是什么意思
  5. 【Python茴香豆系列】之 字典合并
  6. 基于GAMS的电力系统优化分析
  7. 服务器系统安装oracle数据库,Oracle 11g服务器安装详细步骤图文详解
  8. 退换货预约取件下单接口-快递员上门取件API
  9. 3D建模软件中如何进行装配设计?
  10. Arduino--音乐频谱