Python obtiene fotos, realiza detección de valor nominal y clasifica ~

prefacio

¡Hola! Hola a todos, este es el Rey Demonio~

Listo para trabajar

Antes de escribir el código, debe solicitar permiso en la plataforma de desarrollo.
No sé cómo hacer posible chatear conmigo en privado ~

Entorno de desarrollo:

  • Pitón 3.8
  • Pycharm 2021.2
  • utilizará la interfaz

Uso del módulo:

  • solicitudes >>> solicitudes de instalación de pip
  • tqdm >>> pip instalar tqdm
  • sistema operativo
  • base64

Cómo instalar módulos de terceros de Python:

  1. win + R Ingrese cmd Haga clic en Aceptar, ingrese el nombre del módulo de instalación del comando de instalación pip (solicitudes de instalación de pip) Ingrese
  2. Haga clic en Terminal en pycharm para ingresar el comando de instalación

¿Cómo configurar el intérprete de python en pycharm?

  1. Seleccionar archivo >>> configuración >>> Proyecto >>> intérprete de python (intérprete de python)
  2. Haga clic en el engranaje, seleccione agregar
  3. Agregar ruta de instalación de python

¿Cómo instala pycharm los complementos?

  1. Seleccionar archivo >>> configuración >>> Complementos
  2. Haga clic en Marketplace e ingrese el nombre del complemento que desea instalar. Por ejemplo: traducción de entrada de complemento de traducción/entrada de complemento de chino Chino
  3. Seleccione el complemento correspondiente y haga clic en instalar.
  4. Después de que la instalación sea exitosa, aparecerá la opción para reiniciar pycharm, haga clic en Aceptar y reinicie para que surta efecto.

en dos etapas

La primera etapa es recopilar datos fotográficos.

El proceso básico del rastreador:

1. Análisis de la fuente de datos

¿Dónde se puede obtener la foto ancla y la dirección URL de la foto?>> Análisis de captura de paquetes a través de la herramienta para desarrolladores en la página web

2. Pasos de implementación del código Enviar solicitud >>> obtener datos >>> analizar datos >>> guardar datos

  1. enviar solicitud, para enviar la página de lista de solicitudes
  2. Obtenga datos, obtenga la respuesta de datos de respuesta devuelta por el servidor
  3. Analizar los datos, extraer el contenido que queremos, nombre de ancla, imagen de portada de ancla, dirección de URL,
    datos json, puede procesar directamente
    la extracción de expresiones regulares,
    extraer contenido de acuerdo con los nodos/atributos de etiqueta:
    xpath
    css selector
  4. Guardar datos, guardar el contenido de la imagen en la carpeta local

La segunda etapa de detección del valor del color.

Para nuestras fotos guardadas, realizaremos la detección y puntuación del valor del color.
inserte la descripción de la imagen aquí

código

Por alguna razón, el código está incompleto, si lo necesitas, puedes chatear conmigo en privado y te lo enviaré~

# 导入数据请求
import requests  # pip install requests (导入模块没有使用是灰色)
# 导入格式化输出模块
import pprint
# 导入os文件操作模块
import os
import base64
from tqdm import tqdm

# 发送请求
# 确定请求的url地址
for page in range(1, 11):
    url = f''
    # headers 请求头 伪装Python的代码 不被识别出来是爬虫程序...
    # headers 是一个字典数据类型
    headers = {
    
    
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
    }
    # 通过requests模块去对url地址发送请求
    response = requests.get(url=url, headers=headers)
    # 2. 获取数据, 获取服务器返回的数据内容
    # <Response [200]> 返回response对象, 200状态码 表示请求成功
    # 我能不能直接获取json数据呢? *** 请求参数里面含有callback 想要直接获取json数据 要删掉
    # print(response.json())
    # pprint.pprint(response.json())
    # 3. 解析数据, 提取我们想要数据内容 主播名字 主播封面图url地址
    # json数据提取内容 根据冒号左边的内容 提取冒号右边内容
    data_list = response.json()['data']['datas']
    for index in data_list:
        # pprint.pprint(index)
        name = index['nick']
        img_url = index['screenshot']
        # 4. 保存数据 保存图片数据内容, 也需要发送请求 获取数据
        # response.text 获取响应体文本数据
        # response.json() 获取响应体的json字典数据
        # response.content 获取响应体的二进制数据
        img_content = requests.get(url=img_url, headers=headers).content
        # 'img\\' 文件路径 name 文件名字 '.jpg' 文件后缀 >>> 文件名
        # mode 保存方式 wb 二进制模式写入
        # as 重命名 为 f
        filename = 'img_1\\'
        if not os.path.exists(filename):
            os.mkdir(filename)

        with open(filename + name + '.jpg', mode='wb') as f:
            f.write(img_content) # 写入数据
            print('正在保存: ', name)


def get_beauty(img_base64):
    host = ''
    data = {
    
    
        'grant_type': 'client_credentials',
        'client_id': 'vXONiwhiVGlBaI2nRRIYLgz5',
        'client_secret': 'ouZMTMuCGLi7pbeg734ftNxn9h3qN7R4'
    }
    response = requests.get(url=host, params=data)
    token = response.json()['access_token']
    # print(token)
    '''
    人脸检测与属性分析
    '''
    request_url = f"}"
    params = {
    
    
        "image": img_base64,  # 需要传递 图片 base64
        "image_type": "BASE64",
        "face_field": "beauty"
    }
    headers = {
    
    'content-type': 'application/json'}
    response = requests.post(request_url, data=params, headers=headers)
    try:
        beauty = response.json()['result']['face_list'][0]['beauty']
        return beauty
    except:
        return '识别失败'


# f = open('img\\DX丶软软.jpg', mode='rb')  # 读取一张图片内容
# 转成base64内容
# img_base64 = base64.b64encode(f.read())


# 1. 获取所有图片
lis = []
files = os.listdir('img_1\\')
print('正在识别人脸, 颜值检测中, 请稍后.....')
for file in tqdm(files):
    img_file = 'img_1\\' + file
    img_name = file.split('.')[0]
    # print(img_file)
    f = open(img_file, mode='rb')  # 读取一张图片内容
    img_base64 = base64.b64encode(f.read())
    beauty = get_beauty(img_base64)
    if beauty != '识别失败':
        dit = {
    
    
            '主播': img_name,
            '颜值': beauty,
        }
        lis.append(dit) # 把字典添加到空列表里面
    # print(f'{img_name}颜值评分是{beauty}')


lis.sort(key=lambda x:x['颜值'], reverse=True)
num = 1
# 前10张照片的颜值排名
for index in lis:
    print(f'颜值排名第{
    
    num}的是{
    
    index["主播"]}, 颜值评分是{
    
    index["颜值"]}')
    num += 1

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

videotutorial

Rastreador de Python + inteligencia artificial: recopile la cubierta de anclaje de Huya y realice una detección de valor nominal

epílogo

Bueno, ¡este artículo mío termina aquí!

Si tiene más sugerencias o preguntas, ¡no dude en comentar o enviarme un mensaje privado! Trabajemos duro juntos (§ •_•) §

¡Sigue al blogger si te gusta, o dale me gusta y comenta mi artículo! ! !
inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/python56123/article/details/124041503
Recomendado
Clasificación