Ppython はデスクトップの壁紙の自動変更を実装します
そういえば、兄弟たち、彼女が怒っているとき、あなたはどうやって彼女を慰めますか?
まさか、まさか、まだ独身の人なんていないよ!
忘れて、本題に戻ります、それに、殴られますよ~
今日は、プログラマーがガールフレンドを説得する方法について話します。早速始めましょう。
準備
1. 環境
まず環境とエディタを準備します。
- Python 3.8 インタープリター
- Pycharmエディタ
2. 使用するモジュール
import re # 正则表达式模块
import requests # 数据请求模块
import os # 文件操作模块
import ctypes # 时间模块
request はサードパーティ モジュールであるため、手動でインストールする必要があります。インストール コマンドをwin + R
入力してください。cmd
pip install requests
その他は組み込みであり、インストールする必要はなく、直接呼び出すだけです。
3. pycharm で Python インタープリターを設定するにはどうすればよいですか?
- ファイルを選択 >>> 設定 >>> プロジェクト >>> Python インタープリター
- 歯車をクリックして追加を選択します
- Pythonのインストールパスを追加
4. pycharm にプラグインをインストールするにはどうすればよいですか?
- ファイルを選択 >>> 設定 >>> プラグイン
- 「マーケットプレイス」をクリックし、インストールするプラグインの名前を入力します。例: 翻訳プラグインの場合は「translation」と入力し、中国語プラグインの場合は「中国語」と入力します。
- 対応するプラグインを選択し、「インストール」をクリックします。
- インストールが成功すると、pycharm を再起動するオプションが表示されるので、「OK」をクリックすると再起動が有効になります。
コードの練習
独身の友人のために、このケースを 2 つの部分に分け、記事の最後に名刺にソース コードを載せておきます。
- 壁紙を入手する
- 自動置換を設定する
もちろん、独身でない方は後半だけ見てください(笑)
1.壁紙を入手する
まずは壁紙を一枚用意しましょう
壁紙を入手するには4つのステップがありますが、検出されないように以下のURLをブロックします。
- http://www.***.com/desk/31131.htm に対してリクエストを送信します。
- データの取得、Web ページのソース コードの取得 <サーバーが応答データを返す>
- データを解析し、必要なデータの内容、壁紙のリンク、名前を抽出します。
- データを保存、壁紙ファイルをローカルファイルに保存
リクエストを送信する
for page in range(3, 21):
print(f'正在采集第{
page}页的数据内容')
# 请求链接
link = f'http://www.****.com/index_{
page}.htm'
# 发送请求
html_data = requests.get(link).text
# 提取ID
img_id_list = re.findall('<a href="/desk/(\d+)\.htm" title=', html_data)
# for循环遍历
for img_id in img_id_list:
# 请求链接
url = f'http://www.***.com/desk/{
img_id}.htm'
# 发送请求
response = requests.get(url)
データを取得する
response.text 获取响应文本数据
response.encoding = response.apparent_encoding 自动识别码
分析データ
# 获得到数据, 返回出现乱码了
response.encoding = 'gbk'
# 链接地址 以及 标题
img, title = re.findall('<img src="(.*?)" alt="(.*?)"', response.text)[0]
print(img, title)
セーブデータ
# 发送请求, 获取数据
img_content = requests.get(img).content
with open('img\\' + title + '.jpg', mode='wb') as f:
f.write(img_content)
複数のページでの複数のデータ収集
ここでは一般的なアイデアのみを説明しますが、特別に説明するビデオを録画しましたので、記事の最後にある名刺にビデオを掲載しています。
1つのリンクに1つのデータが対応しており、複数のリンクを取得すると複数のデータを取得できます。
http://www.***.com/desk/31095.htm
http://www.***.com/desk/31131.htm
http://www.***.com/desk/31090.htm
http://www.***.com/desk/31092.htm
2 ページ目: http://www.***.com/index_2.htm
3ページ目:http://www.***.com/index_3.htm
4 ページ: http://www.***.com/index_4.htm
壁紙プログラムを自動的に変更する
import os
import ctypes
import cv2
def Change():
# 壁纸文件夹路径
wallpaper_dir = r"D:\壁纸\output"
# 获取壁纸文件夹中的文件列表
wallpapers = os.listdir(wallpaper_dir)
# 随机选择一张壁纸
# wallpaper_filename = random.choice(wallpapers)
for wallpaper in wallpapers:
# 拼接壁纸文件的完整路径
wallpaper_path = os.path.join(wallpaper_dir, wallpaper)
# 设置壁纸
ctypes.windll.user32.SystemParametersInfoW(20, 0, wallpaper_path, 3)
def convert_mp4_to_jpgs(path):
video_capture = cv2.VideoCapture(path)
still_reading, image = video_capture.read()
frame_count = 5 # 保存的起始帧的编号005
while still_reading:
cv2.imwrite(f"output/frame_{
frame_count:03d}.jpg", image)
# read next image
still_reading, image = video_capture.read()
frame_count += 5 # 保存帧依次增加5,005>>010>>015.......
Change()
やっと
彼女にあなたの誠意をもっと感じてもらうために、彼女の写真をフォトウォールにするためのソースコードも用意しましたので、下の名刺に貼り付けて効果を確認してください。
さて、これでガールフレンドをなだめることについて共有するのは終わりです。大丈夫ならガールフレンドを怒らせないことをお勧めします。うまく彼女をなだめれば、大丈夫です。彼女をなだめることができない場合は、めちゃくちゃになります!