プログラマーはガールフレンドをどうやって説得するのでしょうか? Python を使用してガールフレンドの写真を壁紙ソフトウェアに変換し、デスクトップの壁紙を自動的に変更します


そういえば、兄弟たち、彼女が怒っているとき、あなたはどうやって彼女を慰めますか?

まさか、まさか、まだ独身の人なんていないよ!

忘れて、本題に戻ります、それに、殴られますよ~

今日は、プログラマーがガールフレンドを説得する方法について話します。早速始めましょう。

準備

1. 環境

まず環境とエディタを準備します。

  • Python 3.8 インタープリター
  • Pycharmエディタ

2. 使用するモジュール

import re  # 正则表达式模块
import requests  # 数据请求模块
import os  # 文件操作模块
import ctypes # 时间模块

request はサードパーティ モジュールであるため、手動でインストールする必要があります。インストール コマンドをwin + R入力してください。cmd pip install requests

その他は組み込みであり、インストールする必要はなく、直接呼び出すだけです。

3. pycharm で Python インタープリターを設定するにはどうすればよいですか?

  1. ファイルを選択 >>> 設定 >>> プロジェクト >>> Python インタープリター
  2. 歯車をクリックして追加を選択します
  3. Pythonのインストールパスを追加

4. pycharm にプラグインをインストールするにはどうすればよいですか?

  1. ファイルを選択 >>> 設定 >>> プラグイン
  2. 「マーケットプレイス」をクリックし、インストールするプラグインの名前を入力します。例: 翻訳プラグインの場合は「translation」と入力し、中国語プラグインの場合は「中国語」と入力します。
  3. 対応するプラグインを選択し、「インストール」をクリックします。
  4. インストールが成功すると、pycharm を再起動するオプションが表示されるので、「OK」をクリックすると再起動が有効になります。

コードの練習

独身の友人のために、このケースを 2 つの部分に分け、記事の最後に名刺にソース コードを載せておきます。

  1. 壁紙を入手する
  2. 自動置換を設定する

もちろん、独身でない方は後半だけ見てください(笑)

1.壁紙を入手する

まずは壁紙を一枚用意しましょう

壁紙を入手するには4つのステップがありますが、検出されないように以下のURLをブロックします。

  1. http://www.***.com/desk/31131.htm に対してリクエストを送信します。
  2. データの取得、Web ページのソース コードの取得 <サーバーが応答データを返す>
  3. データを解析し、必要なデータの内容、壁紙のリンク、名前を抽出します。
  4. データを保存、壁紙ファイルをローカルファイルに保存

リクエストを送信する

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()

やっと

彼女にあなたの誠意をもっと感じてもらうために、彼女の写真をフォトウォールにするためのソースコードも用意しましたので、下の名刺に貼り付けて効果を確認してください。


さて、これでガールフレンドをなだめることについて共有するのは終わりです。大丈夫ならガールフレンドを怒らせないことをお勧めします。うまく彼女をなだめれば、大丈夫です。彼女をなだめることができない場合は、めちゃくちゃになります!

おすすめ

転載: blog.csdn.net/fei347795790/article/details/130806841