【Python百日刷题计划】Day8~网页分析和一些基础题目

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 【Python百日刷题计划】Day8~网页分析和一些基础题目

文章目录

📚前言

📄题目一

📜题目要求

📜我的解析

📜我的答案

📄题目二

📜我的解析

📜我的答案

📄题目三

📜题目要求

📜我的解析

📜我的答案

📄题目四

📜写在前面

📜题目要求

📜我的答案

📜我的解析:

📚结语


📄题目一

📜题目要求

image.gif编辑

📜我的解析

本道题目难度较小主要考察了内置函数的基本使用方法

📜我的答案

def main(lst):
    return sorted(lst,key=abs)[len(lst) - 1]
image.gif

📄题目二

image.gif编辑

📜我的解析

本题难度较小,主要考察列表,匿名函数,列表推导式的基本使用方法。

📜我的答案

def main(lst):
    is_odd = lambda l : l % 2 == 1        #判断列表中元素是否为奇数的函数
    return [i for i in filter(is_odd,lst)]#生成器中的列表推导式
image.gif

filter内置函数的使用方法------>>【http://t.csdn.cn/NV79F

列表推导式的使用方法 ------>> 【http://t.csdn.cn/eIkZj

📄题目三

📜题目要求

image.gif编辑

📜我的解析

本题难度很小主要考察的是if-else语句和格式化输出

📜我的答案

print('What kind of drink would you like?')
kind_of_drink = input()
if kind_of_drink == 'cola':
    print('Below is your cola. Please check it!')
else:
    print('The {} has been sold out!'.format(kind_of_drink))
image.gif

📄题目四

📜写在前面

写本道题目之前需要掌握以下知识点哟,不清楚的可以翻看我之前的博客或者是网上查找相应的视频来回顾

    • 知识点一👉urlib库的使用中请求对象的定制使用urllib来获取源码
    • 知识点二👉re模块的基本使用方法
    • 知识点三👉json模块的基本使用方法
    • 知识点四👉正则匹配(用于对网页想要信息的提取和不想要信息的剔除
    • 知识点五👉文件的基本使用方法

    📜题目要求

    👉获取某瓣电影排名前十页电影的<"电影排名" "电影标题" "豆瓣评分"和"评论人数">并且将爬取下来的数据放到名为<豆瓣电影信息>的文件中

    image.gif编辑

    📜我的答案

    import json
    import re
    import urllib.request
    def html_get(url):
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36'
        }
        request = urllib.request.Request(url=url, headers=headers)
        response = urllib.request.urlopen(request).read().decode('utf-8')
        return response
    def page_info(h):
        com = re.compile(
            '<div class="item">.*?<div class="pic">.*?<em .*?>(?P<电影排名>\d+).*?<span class="title">(?P<电影标题>.*?)</span>'
            '.*?<span class="rating_num" .*?>(?P<豆瓣评分>.*?)</span>.*?<span>(?P<评论人数>.*?)评价</span>', re.S)
        ret = com.finditer(h)
        for i in ret:
            yield {
                "电影排名": i.group("电影排名"),
                "电影标题": i.group("电影标题"),
                "豆瓣评分": i.group("豆瓣评分"),
                "评论人数": i.group("评论人数"),
            }
    def main(num):
        url = 'https://movie.douban.com/top250?start=%s&filter=' % num
        douban_html = html_get(url)
        res = page_info(douban_html)
        print(res)
        f=open("豆瓣电影信息","a",encoding="utf8")
        for obj in res:
            print(obj)
            data=json.dumps(obj,ensure_ascii=False)
            f.write(data+"\n")
        f.close()
    if __name__ == '__main__':
        count = 0
        for page_num  in range(10):
            main(count)
            count += 25
    输出结果:
    image.gif

    输出结果:

    image.gif编辑

    知识点:

    flags有很多可选值:

    image.gif编辑

     

      • re.I(IGNORECASE)忽略大小写,括号内是完整的写法
      • re.M(MULTILINE)多行模式,改变^和$的行为
      • re.S(DOTALL)点可以匹配任意字符,包括换行符
      • re.L(LOCALE)做本地化识别的匹配,表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境,不推荐使用
      • re.U(UNICODE) 使用\w \W \s \S \d \D使用取决于unicode定义的字符属性。在python3中默认使用该flag
      • re.X(VERBOSE)冗长模式,该模式下pattern字符串可以是多行的,忽略空白字符,并可以添加注释

      📜我的解析:

      html_get(url)函数:

        • 作用:

        获取豆瓣对应网址的网页源码

          • 参数:

          要获取信息的网址

            • 返回值:

            豆瓣对应网址的网页源码

            ✨ page_info(h)函数

              • 作用:

              该函数的作用是匹配获取到的网页源码中的"电影排名" "电影标题" "豆瓣评分"和"评论人数"

                • 参数:

                对应网址的网页源码

                  • 返回值:

                  一个生成器函数

                  ✨ main(num)函数

                    • 作用:

                    顾名思义该函数是程序中的主函数,调用它获取对应页数的<"电影排名" "电影标题" "豆瓣评分"和"评论人数">并且将爬取下来的数据放到名为<豆瓣电影信息>的文件中

                      • 参数:

                      num = 0 则表示第一页,num = 25则表示第二页,num = 50则表示第三页,以此类推,因为每页有25部电影。

                        • 返回值:

                        将爬取下来的数据放到名为<豆瓣电影信息>的文件中

                        相关文章
                        |
                        12天前
                        |
                        机器学习/深度学习 数据采集 算法
                        时间序列结构变化分析:Python实现时间序列变化点检测
                        在时间序列分析和预测中,准确检测结构变化至关重要。新出现的分布模式往往会导致历史数据失去代表性,进而影响基于这些数据训练的模型的有效性。
                        30 1
                        |
                        12天前
                        |
                        前端开发 搜索推荐 算法
                        中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
                        中草药管理与推荐系统。本系统使用Python作为主要开发语言,前端使用HTML,CSS,BootStrap等技术和框架搭建前端界面,后端使用Django框架处理应用请求,使用Ajax等技术实现前后端的数据通信。实现了一个综合性的中草药管理与推荐平台。具体功能如下: - 系统分为普通用户和管理员两个角色 - 普通用户可以登录,注册、查看物品信息、收藏物品、发布评论、编辑个人信息、柱状图饼状图可视化物品信息、并依据用户注册时选择的标签进行推荐 和 根据用户对物品的评分 使用协同过滤推荐算法进行推荐 - 管理员可以在后台对用户和物品信息进行管理编辑
                        48 12
                        中草药管理与推荐系统Python+Django网页界面+推荐算法+计算机课设系统+网站开发
                        |
                        2天前
                        |
                        数据采集 存储 数据挖掘
                        如何利用Python进行网页数据抓取
                        本文将详细介绍如何使用Python进行网页数据抓取。首先,我们将了解什么是网络爬虫以及其基本原理。然后,逐步讲解如何使用Python的requests库和BeautifulSoup库来抓取和解析网页数据。最后,通过实例展示如何实际应用这些技术来获取所需的数据并进行简单的数据处理。希望通过这篇文章,读者能够掌握基本的网页数据抓取技巧,并能在实际应用中灵活运用。
                        |
                        1天前
                        |
                        机器学习/深度学习 存储 人工智能
                        文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
                        使用Python作为开发语言,基于文本数据集(一个积极的xls文本格式和一个消极的xls文本格式文件),使用Word2vec对文本进行处理。通过支持向量机SVM算法训练情绪分类模型。实现对文本消极情感和文本积极情感的识别。并基于Django框架开发网页平台实现对用户的可视化操作和数据存储。
                        11 0
                        文本情感识别分析系统Python+SVM分类算法+机器学习人工智能+计算机毕业设计
                        |
                        5天前
                        |
                        机器学习/深度学习 数据可视化 搜索推荐
                        使用Python实现深度学习模型:智能睡眠监测与分析
                        使用Python实现深度学习模型:智能睡眠监测与分析
                        27 2
                        |
                        7天前
                        |
                        机器学习/深度学习 搜索推荐 TensorFlow
                        使用Python实现深度学习模型:智能饮食建议与营养分析
                        使用Python实现深度学习模型:智能饮食建议与营养分析
                        30 3
                        |
                        8天前
                        |
                        机器学习/深度学习 搜索推荐 算法框架/工具
                        使用Python实现深度学习模型:智能运动表现分析
                        使用Python实现深度学习模型:智能运动表现分析
                        31 1
                        |
                        20天前
                        |
                        数据采集 JavaScript 前端开发
                        构建简易Python爬虫:抓取网页数据入门指南
                        【8月更文挑战第31天】在数字信息的时代,数据抓取成为获取网络资源的重要手段。本文将引导你通过Python编写一个简单的网页爬虫,从零基础到实现数据抓取的全过程。我们将一起探索如何利用Python的requests库进行网络请求,使用BeautifulSoup库解析HTML文档,并最终提取出有价值的数据。无论你是编程新手还是有一定基础的开发者,这篇文章都将为你打开数据抓取的大门。
                        |
                        22天前
                        |
                        大数据 机器人 数据挖掘
                        这个云ETL工具配合Python轻松实现大数据集分析,附案例
                        这个云ETL工具配合Python轻松实现大数据集分析,附案例
                        |
                        22天前
                        |
                        存储 数据可视化 Python
                        使用python moviepy提取视频中的音频,同时对音频数据进行数据可视化分析
                        使用python moviepy提取视频中的音频,同时对音频数据进行数据可视化分析
                        18 0