双击下载当日bing壁纸

news/2025/2/5 7:01:02/

...

  • 语言 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)
}

http://www.ppmy.cn/news/687870.html

相关文章

Python从Bing壁纸的API接口保存图片

先贴代码: from urllib import request from lxml import etree from time import localtime from os import getcwddef Get_Image():urlrhttps://cn.bing.com/HPImageArchive.aspx?formatxml&idx0&n1&mktzh-CNfor res0 in etree.HTML(request.urlope…

使用Python获取bing壁纸接口

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

python爬虫 bing壁纸

最近学习python爬虫,写了一个小例子.主要用来爬取bing壁纸. 源码如下: ‘’’ import requests from bs4 import BeautifulSoup import re import os from urllib.request import urlretrieve import time from email.header import Header from email.mime.text import …

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

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

设置bing桌面壁纸

golang语言编写,设置windows桌面壁纸,图片来自于必应网站(cn.bing.com) github源码地址:https://github.com/tujiaw/gowallpaper 有兴趣的Star一下吧 编译好的程序:https://pan.baidu.com/s/1l5OW9GeuUF0…

[深入浅出Windows 10]应用实战:Bing在线壁纸

本章介绍一个使用Bing搜索引擎背景图接口实现的一个应用——Bing在线壁纸,讲解如何使用网络的接口来实现一个壁纸下载,壁纸列表展示和网络请求封装的内容。通过该例子我们可以学习到如何使用网络编程的知识和开放的接口来实现一些有趣的应用程序&#xf…

探索性测试: 工具和方法的综合应用

1、前言 2、工具的使用 1、测试管理工具 2、缺陷跟踪工具 3、测试自动化工具 4、探索性测试工具 5、代码覆盖率工具 6、日志分析工具 7、网络抓包工具 8、数据库查询工具 9、并发和负载测试工具 10、安全测试工具 11、API测试工具 12、数据生成工具 13、异常处理和边界测试工具…

微信公众平台账号找回方法

问题:由于长时间未登录账号,导致账号冻结,在登录时提示密码不正确,点击修改密码提示邮箱未注册,注册时提示邮箱被占用,其实是因为账号被冻结了 解决方案: 1、微信关注“公众平台安全助手”&…