我用Python发现了你 “十二星座“ 中的秘密!你是哪个 “星座” 呢?

简介: 我用Python发现了你 “十二星座“ 中的秘密!你是哪个 “星座” 呢?

1.写作灵感来源

现在大多数的女生,貌似见面总喜欢问别人“星座”问题,而不喜欢说“生肖”问题,彷佛并且好像关于“星座”能说的话题确实比“生肖”要多。


基于此,我觉得你有必要了解一下星座知识,说不定以后女孩子聊“星座”话题的时候,不至于哑口无言,也说不定通过星座的交流,就能助你俘获女孩子的芳心呢?



2. 十二星座简介

百度百科上面说:在西方占星学上,黄道12星座是宇宙方位的代名词,一个人出生时,各星体落入黄道上的位置,说明了一个人的先天性格及天赋。黄道12星座象征心理层面,反映出一个人行为的表现的方式。


于是将黄道分成12个星座,称为黄道12星座。依次为白羊座、金牛座、双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、摩羯座、水瓶座、双鱼座。


由此可见:不同星座有着不同的运势。今天黄同学通过这篇文章带大家发现你“星座”中的秘密,先给大家看一个视频。


3. 本文思路

这篇文章一共分为了三个部分,下面我分别为大家介绍这篇文章的写作思路。


① 定义一个函数,输入你的出生日期,获取对应的星座;

② 定义一个字典,根据不同的星座,得到星座对应的英文,用于拼接url;

③ 获取你的星座运势;

1)定义一个函数,输入你的出生日期,获取对应的星座

对于我自己来说,是不咋关注“十二星座”的,而更喜欢说“十二生肖”。因此,我相信有很多人也是不知道自己究竟是什么星座?


def get_constellation(month, date):
    dates = (21, 20, 21, 21, 22, 22, 23, 24, 24, 24, 23, 22)
    constellations = ("摩羯座", "水瓶座", "双鱼座", "白羊座", 
                      "金牛座", "双子座", "巨蟹座", "狮子座", 
                      "处女座", "天秤座", "天蝎座", "射手座", "摩羯座")
    if date < dates[month-1]:
        return constellations[month-1]
    else:
        return constellations[month]
constellation = get_constellation(7, 21) 
print(f'根据你的出生日期,判断你属于"{constellation}"')


结果如下:

image.png

原来12.12属于“射手座”,那么你自己是什么星座呢?


2)定义一个字典,根据不同的星座,得到星座对应的英文,用于拼接url

请求网页的时候,不同的星座有着自己不同的url,而唯一不同就是每个url中有着各自星座的英语名。下面这些代码,就是根据星座的中文名,来获取星座的英文名。


dict_ = {"水瓶座":"Aquarius",
         "双鱼座":"Pisces",
         "白羊座":"Aries",
         "金牛座":"Taurus",
         "双子座":"Gemini",
         "巨蟹座":"Cancer",
         "狮子座":"Leo",
         "处女座":"Virgo",
         "天秤座":"Libra",
         "天蝎座":"Scorpio",
         "射手座":"Sagittarius",
         "摩羯座":"Capricorn"}
url = f"https://www.xzw.com/fortune/{dict_[constellation]}/"
url


结果如下:

image.png

如果单纯都写英文形式的星座,我相信有很多同学根本不知道这些英文,代表什么含义。


3)获取你的星座运势

这里黄同学采用最简单的爬虫,完成了这个需求,不涉及什么高深的知识,也没有什么特别想说的。这里为大家展示部分代码:


lis = re.findall('<em style=" width:(.*?)px;">',content)
comprehensive_fortune,love_fortune,career_fortune,wealth_fortune = [str(int(int(i)/16))+"星" for i in lis]
health_index = re.findall('健康指数:</label>(.*?)<',content,re.S)[0]
negotiation_Index = re.findall('商谈指数:</label>(.*?)<',content,re.S)[0]
lucky_color = re.findall('幸运颜色:</label>(.*?)<',content,re.S)[0]
lucky_num = re.findall('幸运数字:</label>(.*?)<',content,re.S)[0]
match_constellation = re.findall('速配星座:</label>(.*?)<',content,re.S)[0]
short_comment = re.findall('短评:</label>(.*?)<',content,re.S)[0]


结果如下:

image.png

相关文章
|
Python
python源码实例之根据生日预测星座和属相以及属相对应年份(附源码 可供学习)
python源码实例之根据生日预测星座和属相以及属相对应年份(附源码 可供学习)
328 1
python小玩意——星座表程序
python小玩意——星座表程序
python小玩意——星座表程序
|
3月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
320 102
|
3月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
348 104
|
3月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
279 103
|
3月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
207 82
|
2月前
|
Python
Python编程:运算符详解
本文全面详解Python各类运算符,涵盖算术、比较、逻辑、赋值、位、身份、成员运算符及优先级规则,结合实例代码与运行结果,助你深入掌握Python运算符的使用方法与应用场景。
224 3
|
2月前
|
数据处理 Python
Python编程:类型转换与输入输出
本教程介绍Python中输入输出与类型转换的基础知识,涵盖input()和print()的使用,int()、float()等类型转换方法,并通过综合示例演示数据处理、错误处理及格式化输出,助你掌握核心编程技能。
484 3
|
2月前
|
并行计算 安全 计算机视觉
Python多进程编程:用multiprocessing突破GIL限制
Python中GIL限制多线程性能,尤其在CPU密集型任务中。`multiprocessing`模块通过创建独立进程,绕过GIL,实现真正的并行计算。它支持进程池、队列、管道、共享内存和同步机制,适用于科学计算、图像处理等场景。相比多线程,多进程更适合利用多核优势,虽有较高内存开销,但能显著提升性能。合理使用进程池与通信机制,可最大化效率。
305 3
|
2月前
|
Java 调度 数据库
Python threading模块:多线程编程的实战指南
本文深入讲解Python多线程编程,涵盖threading模块的核心用法:线程创建、生命周期、同步机制(锁、信号量、条件变量)、线程通信(队列)、守护线程与线程池应用。结合实战案例,如多线程下载器,帮助开发者提升程序并发性能,适用于I/O密集型任务处理。
322 0