回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

数算天机-科技遇占卜 简单

头像 2025.06.28 16 0

寻龙分金看缠山,一重缠是一重关,算卦,抽签、手相、命理这些古老的技艺在电影中频频出现,述说着东方的神秘色彩。如何应用AI,结合数算,实现科技与占卜的有机融合,本文结合周易、命盘、签运,制作一个AI算运的罗盘。

材料清单

  • 行空板 X1
  • 灯带 X1
  • 蓝牙音箱 X1
  • 摄像头 X1
  • 按钮 X2

制作步骤:

1.网上找到可以算签的网站,用爬虫爬取签文图片和签诗及签文解析。

2.获取手掌纹路,发送给大模型,返回卦象数字。

3.引用卦象数字,抽取签文。

4.将签文和签图传给大模型,生成释义,并转为语音,解签。

步骤1 爬取签文

代码
import requests
from bs4 import BeautifulSoup
import os
import random
from PIL import Image
from io import BytesIO
def get_qian_content(url):
    try:
        # 发送HTTP请求
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
        }
        response = requests.get(url, headers=headers)
        response.raise_for_status()  # 检查请求是否成功
        
        # 解析HTML内容
        soup = BeautifulSoup(response.text, 'html.parser')
        
        # 获取签诗内容
        qian_poem = soup.find('div', class_='h2_content').get_text(strip=True) if soup.find('div', class_='h2_content') else "未找到签诗内容"
        
        # 获取解析内容
        h2_contents = soup.find_all('div', class_='h2_content')
        if len(h2_contents) >= 2:
            qian_analysis = h2_contents[1].get_text(strip=True)  # 获取第二个的内容
          
         #qian_analysis = soup.find('div', class_='h2_content').get_text(strip=True) if soup.find('div', class_='h2_content') else "未找到解析内容"
        
        # 获取图片地址
        img_tag = soup.find('div', class_='fright p10').find('img') if soup.find('div', class_='fright p10') else None
        img_url = img_tag['src'] if img_tag else "未找到图片地址"
        
        # return {
        #     '签诗':qian_poem,
        #     '解析':qian_analysis,
        #     '图片地址':img_url.split("//")[1]
        # }
        return {
            '签诗':[qian_poem[i:i+5] for i in range(0, len(qian_poem), 5)],
            '解析': qian_analysis,
            '图片地址': img_url.split("//")[1],
            '签诗2':qian_poem
        }
    except Exception as e:
        return {
            'error': str(e),
            'message': '获取内容时出错'
        }

#使用示例

#url = "https://m.12880.com/lingqian/qiancaosi/" + str(random.randint(1, 100)) + ".html"
#print(url)
#result = get_qian_content(url)
#print("签诗:", result.get('签诗'))
#print("解析:", result.get('解析'))
#print("图片地址:", result.get('图片地址'))

def download_image(image_url, save_path=None,target_size=(240, 320)):
    """
    下载图片到本地
    
    :param image_url: 图片的URL地址
    :param save_path: 本地保存目录,默认为当前目录下的qiancaosi_images文件夹
    :return: 图片保存的完整路径
    """
    try:
       
        current_dir = os.path.dirname(os.path.abspath(__file__))
        
        # 如果未指定 save_path,设置为当前目录下的 img 文件夹
        if save_path is None:
            save_path = os.path.join(current_dir, "")
        # 创建文件夹(如果不存在)
        os.makedirs(save_path, exist_ok=True)    
        # 从URL提取文件名
        # filename = os.path.basename(image_url)
        # file_path = os.path.join(save_path, filename)
        #custom_name = "浅草寺签.jpg"
        #file_path = os.path.join(save_path, custom_name)
        
        
        # 下载图片
        headers = {"User-Agent": "Mozilla/5.0"}
        response = requests.get(image_url, headers=headers, stream=True)
        response.raise_for_status()
        #调整尺寸
        img = Image.open(BytesIO(response.content))
        img_resized = img.resize(target_size, Image.LANCZOS)  # 高质量缩放
        
        # 保存调整后的图片
        custom_name = "浅草寺签.jpg"
        file_path = os.path.join(save_path, custom_name)
        img_resized.save(file_path)


        # 保存图片到本地
        with open(file_path, 'wb') as f:
            for chunk in response.iter_content(1024):
                f.write(chunk)
        
        print(f"图片已成功下载到:{os.path.abspath(file_path)}")
        return file_path
        
    except Exception as e:
        print(f"下载图片失败: {str(e)}")
        return None

# 使用示例
#image_url = "https://"+result.get('图片地址')
#download_image(image_url)   

步骤2 编辑程序运行逻辑

程序截图.png

2.png

4.png

获取签文,将签文发送给大模型进行解析。由百度语言对签文进行讲解。

评论

user-avatar