解析HAR格式内容 py

import importlib
import subprocess


def import_module(module_name):
    try:
        return importlib.import_module(module_name)
    except ImportError:
        print(f"未找到模块 {module_name},正在安装...")
        subprocess.check_call(["pip", "install", module_name])
        return importlib.import_module(module_name)


# 导入所需的第三方库
base64 = import_module("base64")
hashlib = import_module("hashlib")
mimetypes = import_module("mimetypes")
os = import_module("os")
haralyzer = import_module("haralyzer")


def parse(har_path):
    # 如果不存在 'res' 目录,则创建它
    os.makedirs('res', exist_ok=True)
    # 创建一个 MD5 哈希对象
    hasher = hashlib.md5()

    # 创建一个 HarParser 对象,并从文件中加载 HAR 数据
    har_parser = haralyzer.HarParser.from_file(har_path)
    # 遍历每个页面
    for page in har_parser.pages:
        # 获取页面的所有资源
        entries = (page.audio_files + page.image_files)
        # 遍历每个资源
        for i in range(len(entries)):
            entry = entries[i]
            response = entry.get('response')
            url = entry.url

            if url and 'content' in response:
                content = response.get('content')
                text = content.get('text')
                if text:
                    mime_type = content.get('mimeType')
                    encoding = content.get('encoding')
                    if encoding == 'base64':
                        # 如果是 base64 编码的文本,则解码为字节
                        text = base64.b64decode(text)
                    else:
                        # 否则,将文本编码为字节
                        text = text.encode()

                    # 根据 MIME 类型猜测文件扩展名
                    file_extension = mimetypes.guess_extension(mime_type)
                    if file_extension:
                        # 使用 URL 的哈希值作为文件名,并拼接文件扩展名
                        hasher.update(url.encode('utf-8'))
                        file_name = os.path.join('res', f'{hasher.hexdigest()}{file_extension}')
                        print(f'保存文件    {file_name}')
                        # 将字节写入文件
                        with open(file_name, 'wb') as f:
                            f.write(text)


if __name__ == '__main__':
    # 遍历当前目录下的所有文件
    for file_path in os.listdir(os.getcwd()):
        # 如果文件扩展名是 '.har'
        if os.path.splitext(file_path)[1] == '.har':
            # 解析该 HAR 文件
            parse(file_path)
            break
    print('执行结束')

重命名.js结尾的文件 shell

#!/bin/bash

# 打印当前目录
echo "The current directory is: $(PWD)"

# 获取命令行参数,如果没有参数则提示输入
appendChar=${1:-}
if [ -z "$appendChar" ]; then
  # shellcheck disable=SC2162
  read -p "Enter the character you want to append: " appendChar
fi

# 遍历当前目录下所有文件
for file in *; do
  # 如果文件是目录,递归调用自身
  if [[ -d "$file" ]]; then
    cd "$file" || exit
    bash "${BASH_SOURCE[0]}" "$appendChar"
    cd ..
  # 如果文件是.js 结尾
  elif [[ "$file" = *.js ]]; then
    # 获取文件基本名
    file_name=$(basename "$file")
    # 如果文件名称中间包含_,获取第一个_之前的内容
    if [[ "$file" = *_* ]]; then
      #    echo "$file contains _ in the middle."
      file_name=$(echo "$file_name" | cut -d'_' -f1)
    else
      #    echo "$file does not contain _ in the middle."
      file_name=$(basename "$file" .js)
    fi
    # 获取文件扩展名
    extension="${file##*.}"
    # 拼接新文件名
    new_name="${file_name}_${appendChar}.${extension}"
    # 重命名文件
    mv "$file" "$new_name"
  fi
done