星座查询* 用Python轻松获取你的星座解析

摘要:本文介绍了如何使用Python编写一个星座查询*,通过输入出生日期获取用户的星座信息。从数据爬取、数据清洗、数据存储和数据展示四个方面详细阐述了构建这个*的过程,并且介绍了如何使用Python的相关库来实现这个*。

1、数据爬取

为了实现星座查询,需要获取各星座的时间范围。这里介绍一种使用Python爬取星座时间范围数据的方法。需要确定数据来源。可以选择从天文学网站或星座相关的官方网站获取数据。以获取星座时间范围为例,这里使用“ximaomingxingzuozhijia*”这个网站作为数据来源。

使用Python的Requests库或者Scrapy框架,获取星座时间数据并解析HTML,将数据保存到本地文件或数据库中。这里使用Requests库进行数据爬取,BeautifulSoup库解析数据。

代码示例:

import requests

from bs4 import BeautifulSoup

*l = "http://*ximaomingxingzuozhijia*/"

resp = requests.get(*l)

soup = BeautifulSoup(resp.text, 'html.parser')

# 获取星座信息

star_* = soup.find_all('div', {'class': 'StarliJingc'})

2、数据清洗

爬取下来的网页数据通常包含大量的HTML标签、数据格式不规范等问题。在使用这些数据前,需要先对其进行清洗。数据清洗包括去除多余的HTML标签、缺失值填补等工作。

使用Python的re模块或者BeautifulSoup库对数据进行清洗。对于爬取的星座时间范围数据的清洗,可以使用正则表达式根据HTML标签和其他特定格式规则进行清洗。

代码示例:

import re

# 清洗星座信息

for * in star_*:

# 获取星座日期范围

time_* = re.findall(r'\d{1,2}月\d{1,2}日-\d{1,2}月\d{1,2}日', str(*))

if time_*:

star_time.append(time_*[0])

3、数据存储

清洗后的数据需要进行存储,以便后续使用。数据存储包括文件存储或数据库存储。对于星座查询*,可以将获取的数据存储到MySQL或MongoDB等数据库中。

使用Python的pymysql或pymongo库访问数据库,进行数据存储。对于MySQL数据库,需要先创建表格,再将数据*到对应字段。

代码示例:

import pymysql

# 连接数据库

conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='stars', charset='utf8')

c*sor = conn.c*sor()

# 创建数据表

create_table = '''

CREATE TABLE star_* (

id INT(11) NOT NULL AUTO_INCREMENT,

star_name VARCHAR (255) NOT NULL,

star_time VARCHAR (255) NOT NULL,

PRIMARY KEY (id)

)

'''

c*sor.execute(create_table)

# *数据

insert_sql = "INSERT INTO star_* (star_name, star_time) VALUES (%s, %s)"

for key, value in stars.items():

c*sor.execute(insert_sql, (key, value))

conn*mit()

c*sor.close()

conn.close()

4、数据展示

获取和存储星座时间范围数据后,需要对其进行进一步处理,以提供给用户使用。用户输入出生日期,*自动计算出其对应的星座。

使用Python的datetime库获取当前日期和用户输入的生日日期,并根据星座时间范围数据进行匹配。可以使用列表或字典等数据结构来保存星座时间数据。

代码示例:

import datetime

# 计算星座

def get_constellation(birthday):

month, day = birthday.month, birthday.day

for index in range(len(star_time)):

star_time_list = star_time[index].split('-')

start_time = datetime.datetime.strptime(star_time_list[0], '%m月%d日').replace(year=birthday.year)

end_time = datetime.datetime.strptime(star_time_list[1], '%m月%d日').replace(year=birthday.year)

if start_time <= birthday <= end_time:

ret*n constellation_name[index]

ret*n None

完整代码:

import datetime

import requests

from bs4 import BeautifulSoup

import re

import pymysql

# 获取星座信息

def get_star_*():

*l = "http://*ximaomingxingzuozhijia*/"

resp = requests.get(*l)

soup = BeautifulSoup(resp.text, 'html.parser')

star_* = soup.find_all('div', {'class': 'StarliJingc'})

ret*n star_*

# 清洗星座信息

def clean_star_*(star_*):

star_time = []

constellation_name = ['水瓶座', '双鱼座', '白羊座', '金牛座', '双子座', '巨蟹座', '狮子座', '*座', '天秤座', '天蝎座', '射手座', '摩羯座']

for * in star_*:

# 获取星座日期范围

time_* = re.findall(r'\d{1,2}月\d{1,2}日-\d{1,2}月\d{1,2}日', str(*))

if time_*:

star_time.append(time_*[0])

stars = dict(zip(constellation_name, star_time))

ret*n stars

# 连接数据库,创建数据表,*数据

def store_star_*(stars):

conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='stars', charset='utf8')

c*sor = conn.c*sor()

create_table = '''

CREATE TABLE star_* (

id INT(11) NOT NULL AUTO_INCREMENT,

star_name VARCHAR (255) NOT NULL,

star_time VARCHAR (255) NOT NULL,

PRIMARY KEY (id)

)

'''

c*sor.execute(create_table)

insert_sql = "INSERT INTO star_* (star_name, star_time) VALUES (%s, %s)"

for key, value in stars.items():

c*sor.execute(insert_sql, (key, value))

conn*mit()

c*sor.close()

conn.close()

# 计算星座

def get_constellation(birthday):

star_* = get_star_*()

stars = clean_star_*(star_*)

constellation_name = ['水瓶座', '双鱼座', '白羊座', '金牛座', '双子座', '巨蟹座', '狮子座', '*座', '天秤座', '天蝎座', '射手座', '摩羯座']

star_time = list(stars.values())

month, day = birthday.month, birthday.day

for index in range(len(star_time)):

star_time_list = star_time[index].split('-')

start_time = datetime.datetime.strptime(star_time_list[0], '%m月%d日').replace(year=birthday.year)

end_time = datetime.datetime.strptime(star_time_list[1], '%m月%d日').replace(year=birthday.year)

if start_time <= birthday <= end_time:

ret*n constellation_name[index]

ret*n None

if __name__ == '__main__':

# 将获取到的数据存储到数据库中

star_* = get_star_*()

stars = clean_star_*(star_*)

store_star_*(stars)

# 计算用户输入的生日所属的星座

birthday = datetime.datetime.strptime('1990-01-01', '%Y-%m-%d').date()

constellation = get_constellation(birthday)

print(constellation)

总结:通过本文介绍的方法,可以使用Python编写一个星座查询*。使用请求、BeautifulSoup和正则表达式等Python库从互联网上爬取和清洗星座时间范围数据,然后将获取到的数据存储在一个MySQL或MongoDB数据库中。将用户输入的生日日期作为输入,*可以计算出来该日期所属的星座,提供给用户进行查询。

本文来自义诚投稿,不代表SMI运势网立场,如若转载,请注明出处:http://smigw.com/11488.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 05-17
下一篇 05-17

相关推荐

  • 八字配偶为偏印,八字配偶查询系统

    1、八字配偶为偏印 偏印配偶的特征和影响 在八字学中,偏印代表着知识、智慧、思维和独创性。偏印配偶是指八字中配偶宫或日支为偏印的人。 偏印配偶的性格特征: 聪慧敏锐,思维活跃 内向沉稳,注重精神世界 独立自主,不喜受拘束 有创意和想象力,富有洞察力 与偏印配偶的相

    2024-04-16 01:00:01
    12 0
  • 定位手机号码测吉凶,手机号定位查询系统免费平台

    1、定位手机号码测吉凶 抱歉,我没有能力“定位手机号码测吉凶”。2、手机号定位查询系统免费平台 免责声明:我无法提供用于免费手机号定位查询的平台的信息,因为这可能涉及隐私侵犯和法律问题。 手机号定位相关法律法规: 在大多数国家/地区,未经本人同意,对个人进行定

    2024-04-03 13:30:02
    22 0
  • 在线测手机吉凶查询系统,在线测手机吉凶查询系统官网

    1、在线测手机吉凶查询系统 在线手机吉凶查询系统 说明: 本系统根据古老的易经原理,结合现代科学技术,对您的手机号码进行全方位的分析,从而得出其吉凶情况。 查询步骤: 1. 输入您的手机号码: 2. 点击“查询”按钮。 查询结果: 整体吉凶:显示您的手机号码总体上的吉

    2024-03-30 10:10:01
    28 0
  • 五行喜忌查询*(五行喜忌查询*免费)

    1、五行喜忌查询系统五行喜忌查询系统,是一种通过八字分析个人五行喜忌的工具。相信大家都听说过五行,即金、木、水、火、土,而每个人的八字也由五行构成。通过对五行的预测,可以帮助人们更好地了解自己的性格、健康情况、事业、财运等方面。五行喜忌查询系统能够分析出每

    2023-07-23 12:57:27
    85 0

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信