• 一小伙使用 python爬虫来算命?


    前言

    相信在日常生活中,平常大家聚在一起总会聊聊天,特别是女生(有冒犯到doge)非常喜欢聊星座,这个男生什么星座呀,那个男生什么星座呀…今天我就来满足各位的需求,通过爬虫来知晓上天的安排:

    开搞!

    1.网站分析

    因版权原因,网站的地址大家可以私信我或者加我文章结尾的qq,完整的教程群里有,需要的自提,当然遇到问题也可以请教哦。

    2.获取内容

    我们今天呢,就先做一个通过星座来得知三天的运势的小玩意,

    这里有十二个星座,我点了第一个和第二个进去,也就是白羊座和金牛座:

    就会发现一个规律

    请添加图片描述
    在这里插入图片描述

    通过观察网址的链接,我这张丑脸泛起了灿烂的笑容。

    也就是说,https://www.horoscope.com/us/horoscopes/general/是每个星座都共有的一段网址,

    horoscope-general-daily-today.aspx?sign=1

    我们只需改变today和sign={}对应的值就可以获取到每个星座对应的网址了

    https://www.horoscope.com/us/horoscopes/general/horoscope-general-daily-today.aspx?sign=1
    
    • 1

    我们再打开金牛座的昨天的运势,发现daily-后面变成了tomorrow

    3.代码

    from bs4 import BeautifulSoup
    import requests
    
    def horoscope(zodiac_sign: int, day: str) -> str:
        url = (
            "https://www.horoscope.com/us/horoscopes/general/"
            f"horoscope-general-daily-{day}.aspx?sign={zodiac_sign}"
        )#获取需要查询的星座的链接
        soup = BeautifulSoup(requests.get(url).content, "html.parser")
        return soup.find("div", class_="main-horoscope").p.text#返回得到的内容——来自上天的指示
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    如果有小伙伴不知道自己的星座怎么办呢,所以我们就还需要一个函数去查询星座:

    def check_sign():#得到星座
        your_birth_day = input("输入您的生日的日期> ")
        your_birth_month = input("输入你生日的月份> ")
        if (int(your_birth_month) == 12 and int(your_birth_day) >= 22) or (
            int(your_birth_month) == 1 and int(your_birth_day) <= 19
        ):
            sign = "Capricorn"
        elif (int(your_birth_month) == 1 and int(your_birth_day) >= 20) or (
            int(your_birth_month) == 2 and int(your_birth_day) <= 17
        ):
            sign = "Aquarium"
        elif (int(your_birth_month) == 2 and int(your_birth_day) >= 18) or (
            int(your_birth_month) == 3 and int(your_birth_day) <= 19
        ):
            sign = "Pices"
        elif (int(your_birth_month) == 3 and int(your_birth_day) >= 20) or (
            int(your_birth_month) == 4 and int(your_birth_day) <= 19
        ):
            sign = "Aries"
        elif (int(your_birth_month) == 4 and int(your_birth_day) >= 20) or (
            int(your_birth_month) == 5 and int(your_birth_day) <= 20
        ):
            sign = "Taurus"
        elif (int(your_birth_month) == 5 and int(your_birth_day) >= 21) or (
            int(your_birth_month) == 6 and int(your_birth_day) <= 20
        ):
            sign = "Gemini"
        elif (int(your_birth_month) == 6 and int(your_birth_day) >= 21) or (
            int(your_birth_month) == 7 and int(your_birth_day) <= 22
        ):
            sign = "Cancer"
        elif (int(your_birth_month) == 7 and int(your_birth_day) >= 23) or (
            int(your_birth_month) == 8 and int(your_birth_day) <= 22
        ):
            sign = "Leo"
        elif (int(your_birth_month) == 8 and int(your_birth_day) >= 23) or (
            int(your_birth_month) == 9 and int(your_birth_day) <= 22
        ):
            sign = "Virgo"
        elif (int(your_birth_month) == 9 and int(your_birth_day) >= 23) or (
            int(your_birth_month) == 10 and int(your_birth_day) <= 22
        ):
            sign = "Libra"
        elif (int(your_birth_month) == 10 and int(your_birth_day) >= 23) or (
            int(your_birth_month) == 11 and int(your_birth_day) <= 21
        ):
            sign = "Scorpio"
        elif (int(your_birth_month) == 11 and int(your_birth_day) >= 22) or (
            int(your_birth_month) == 12 and int(your_birth_day) <= 21
        ):
            sign = "Sagittarius"
    
        return sign
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53

    4.实操

    在这里插入图片描述
    在这里插入图片描述

    怎么样?很有趣吧,当然网站有很多的用处,等以后我会继续更新,实现更多的好玩的功能。

    5.代码

    需要完整代码和教程可以加qq群自提:785318982
    群内有大佬,如果遇到学习问题,可以在里面问。


    如果感觉还不错的话点赞,关注支持一下吧,谢谢啦!

  • 相关阅读:
    手撕spring原理,微服务,Netty与RPC知识点,阿里架构师手写文档
    [前端]动态加载问题-按条件加载
    main函数执行前执行和执行后执行
    RxJava(四)-过滤操作符
    浏览器渲染机制
    【Leetcode】1210. Minimum Moves to Reach Target with Rotations
    基于LTE的车联网无线通信技术 直连通信系统路侧单元技术要求
    easyExcel 按照模板设置到处excel内容
    怎么把图片变成Word文档?试试这一招100%准确
    Lumiprobe 亚磷酰胺丨六甘醇亚磷酰胺说明书
  • 原文地址:https://blog.csdn.net/m0_53088614/article/details/119851554