PythonダウンロードBing壁紙の例
この例で使用されているPythonバージョンは3.7バージョンです。
一、bing壁紙ポート
Bingの公式サイトにアクセスして、ブラウザの開発者ツールを通じて、インターネットを見て壁紙を要求するインターフェースが見つかりました。どう判断しましたか?マウスを壁紙の左右の矢印に置いた時に、確認依頼の中に現在の壁紙情報があります。リンク、説明などがあります。
このインターフェースを手に入れました。このインターフェースは壁紙情報を取得するインターフェースのようです。
https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&nc=1600743189543&pid=hp
ネットで収集した資料を結び付けると、リンク上のパラメータ解釈が見つけられます。
パラメータ
説明
可能な値
フォーマット
データフォーマットを返します。固定はjsonです。
js。
idx
最後から数日目の壁紙は最大7日間で、正の整数は最後から数日目を表します。
0,1,2…7
n
一回に何枚の写真を獲得しますか?最大値は7です。
1,2…7
nc
タイムスタンプをミリ秒で表示します。
160043189543
pid
このパラメータの効果は分かりません。
hp。
二、Pythonプログラム
まず、必ずインターフェースの返却データを読みます。今回はrequestsフレームを使って、pipを使ってインストールできます。
完全なコードは以下の通りです。
https://www.microsoft.com/en-us/bing/bing-wallpaper
最後までご覧になったり、あなたの役に立ちましたら、コメントエリアで一緒に交流してください。
以上はPythonがBing壁紙をダウンロードした例の詳細です。PythonがBing壁紙をダウンロードしたことについての資料は他の関連記事に注目してください。
一、bing壁紙ポート
Bingの公式サイトにアクセスして、ブラウザの開発者ツールを通じて、インターネットを見て壁紙を要求するインターフェースが見つかりました。どう判断しましたか?マウスを壁紙の左右の矢印に置いた時に、確認依頼の中に現在の壁紙情報があります。リンク、説明などがあります。
このインターフェースを手に入れました。このインターフェースは壁紙情報を取得するインターフェースのようです。
https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&nc=1600743189543&pid=hp
ネットで収集した資料を結び付けると、リンク上のパラメータ解釈が見つけられます。
パラメータ
説明
可能な値
フォーマット
データフォーマットを返します。固定はjsonです。
js。
idx
最後から数日目の壁紙は最大7日間で、正の整数は最後から数日目を表します。
0,1,2…7
n
一回に何枚の写真を獲得しますか?最大値は7です。
1,2…7
nc
タイムスタンプをミリ秒で表示します。
160043189543
pid
このパラメータの効果は分かりません。
hp。
二、Pythonプログラム
まず、必ずインターフェースの返却データを読みます。今回はrequestsフレームを使って、pipを使ってインストールできます。
pip install requests
壁紙を取得する
#!/usr/bin/python
import requests
import time
#
timestamp = str(int(time.time() * 1000))
#
url = 'https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&nc=' + timestamp + '&pid=hp'
# , UA
headers = {
'User-Agent': ' '.join(['Mozilla/5.0 (Windows NT 10.0; Win64; x64; ServiceUI 14)',
'AppleWebKit/537.36 (KHTML, like Gecko)', 'Chrome/70.0.3538.102', 'Safari/537.36',
'Edge/18.18363'])
}
r = requests.get(url=url, headers=headers)
result = r.json()
上記の要求によって受信したjsonは以下のようなフォーマットです。私達が必要とする画像は$margs[*]であることに注意してください。urlはここで、完全なurlは書いていませんが、試してみてもbingのドメイン名と分かるようになりました。
{
"images": [{
"startdate": "20200921",
"fullstartdate": "202009211600",
"enddate": "20200922",
"url": "/th?id=OHR.Matamata_ZH-CN8111830275_1920x1080.jpg&rf=LaDigue_1920x1080.jpg&pid=hp",
"urlbase": "/th?id=OHR.Matamata_ZH-CN8111830275",
"copyright": " , (© 500px Asia/Getty Images)",
"copyrightlink": "https://www.bing.com/search?q=%E9%A9%AC%E5%A1%94%E9%A9%AC%E5%A1%94&form=hpcapt&mkt=zh-cn",
"title": "",
"quiz": "/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20200921_Matamata%22&FORM=HPQUIZ",
"wp": true,
"hsh": "fab9fa6464d63e134ae0415d9f67aac5",
"drk": 1,
"top": 1,
"bot": 1,
"hs": []
}],
"tooltips": {
"loading": " ...",
"previous": " ",
"next": " ",
"walle": " 。",
"walls": " 。 。"
}
}
画像の住所を取得したら、画像をダウンロードできます。上のコードに合わせて、下の保存画像コードを追加します。
#
image_url = result['images'][0]['url']
# bing
image_url = 'https://cn.bing.com' + image_url
#
save_image_file = '/opt/images/bing.jpg'
#
r = requests.get(url=image_url, headers=headers)
#
with open(save_image_file, 'wb') as f:
#
f.write(r.content)
はい、画像をダウンロードして保存しました。bingインタフェースから返ってきたデータによれば、最大16枚のbingの壁紙画像が得られます。idxとnの2つのパラメータをジャンプすることによって、試してみてもいいです。ここではこれ以上話しません。また、このプログラムはもういくつかの拡張をして、複数のbingの壁紙を保存してもいいです。完全なコードは以下の通りです。
#!/usr/bin/python
import requests
import time
#
timestamp = str(int(time.time() * 1000))
#
url = 'https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&nc=' + timestamp + '&pid=hp'
# , UA
headers = {
'User-Agent': ' '.join(['Mozilla/5.0 (Windows NT 10.0; Win64; x64; ServiceUI 14)',
'AppleWebKit/537.36 (KHTML, like Gecko)', 'Chrome/70.0.3538.102', 'Safari/537.36',
'Edge/18.18363'])
}
#
r = requests.get(url=url, headers=headers)
# json , dict
result = r.json()
#
image_url = result['images'][0]['url']
# bing
image_url = 'https://cn.bing.com' + image_url
#
save_image_file = '/opt/images/bing.jpg'
#
r = requests.get(url=image_url, headers=headers)
#
with open(save_image_file, 'wb') as f:
#
f.write(r.content)
また、マイクロソフトの公式サイトでもBIG壁紙のWindows版が発売されています。壁紙にロゴがあるなら試してみてください。https://www.microsoft.com/en-us/bing/bing-wallpaper
最後までご覧になったり、あなたの役に立ちましたら、コメントエリアで一緒に交流してください。
以上はPythonがBing壁紙をダウンロードした例の詳細です。PythonがBing壁紙をダウンロードしたことについての資料は他の関連記事に注目してください。