我用Python发现了 "十二星座" 中的秘密(附视频)

Python中文社区

共 3681字,需浏览 8分钟

 ·

2021-04-14 21:55

1.写作灵感来源

现在大多数的女生,貌似见面总喜欢问别人“星座”问题,而不喜欢说“生肖”问题,彷佛并且好像关于“星座”能说的话题确实比“生肖”要多。
基于此,我觉得你有必要了解一下星座知识,说不定以后女孩子聊“星座”话题的时候,不至于哑口无言,也说不定通过星座的交流,就能助你俘获女孩子的芳心呢?

2. 十二星座简介

百度百科上面说:在西方占星学上,黄道12星座是宇宙方位的代名词,一个人出生时,各星体落入黄道上的位置,说明了一个人的先天性格及天赋。黄道12星座象征心理层面,反映出一个人行为的表现的方式。
于是将黄道分成12个星座,称为黄道12星座。依次为白羊座、金牛座、双子座、巨蟹座、狮子座、处女座、天秤座、天蝎座、射手座、摩羯座、水瓶座、双鱼座。
由此可见:不同星座有着不同的运势。今天黄同学通过这篇文章带大家发现你“星座”中的秘密,先给大家看一个视频。

3. 本文思路

这篇文章一共分为了3个部分,下面我分别为大家介绍这篇文章的写作思路。
  • ① 定义一个函数,输入你的出生日期,获取对应的星座;
  • ② 定义一个字典,根据不同的星座,得到星座对应的英文,用于拼接url;
  • ③ 获取你的星座运势;
1)定义一个函数,输入你的出生日期,获取对应的星座
对于我自己来说,是不咋关注“十二星座”的,而更喜欢说“十二生肖”。因此,我相信有很多人也是不知道自己究竟是什么星座?
def get_constellation(month, date):
    dates = (212021212222232424242322)
    constellations = ("摩羯座""水瓶座""双鱼座""白羊座"
                      "金牛座""双子座""巨蟹座""狮子座"
                      "处女座""天秤座""天蝎座""射手座""摩羯座")
    if date < dates[month-1]:
        return constellations[month-1]
    else:
        return constellations[month]

constellation = get_constellation(721
print(f'根据你的出生日期,判断你属于"{constellation}"')
结果如下:

原来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
结果如下:

如果单纯都写英文形式的星座,我相信有很多同学根本不知道这些英文,代表什么含义。
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]
结果如下:
星座运势并无科学依据,大家当做一个话题即可,不要太过相信!

更多阅读



2020 年最佳流行 Python 库 Top 10


2020 Python中文社区热门文章 Top 10


5分钟快速掌握 Python 定时任务框架

特别推荐




点击下方阅读原文加入社区会员

浏览 32
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报