使用 ChatGPT 帮助小学生编程入门系列之一:Python 编程读取和解析天气预报网页上的数据

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
简介: 使用 ChatGPT 帮助小学生编程入门系列之一:Python 编程读取和解析天气预报网页上的数据

现在国内小学生也开设了信息技术课,课程内容也涉及到了一些简单的编程实践,比如 Scratch 和 Python.


当初这个公众号申请时专门用了我儿子的名字,算是抢注吧,毕竟微信公众号和其他社交媒体平台不一样,不允许重名。


我也曾经和我儿子聊过,我今年都 40 多岁了,这个公众号将来迟早有一天会正式交给他去运营。


本文算是本公众号利用 ChatGPT 辅助小学生进行编程入门的系列教程的第一篇,目标读者是我儿子和他的同学们。当然,也同样欢迎广大没有太多编程基础,但是又想动手尝试,想使用编程来提高自己日常工作和生活效率的成年朋友们阅读和留言。


本系列面向实战,每篇文章通过编程实现一个实际需求。


本文实现的需求:使用 Python 编写一个程序,爬取某天气预报网页上指定的天气数据。


下面我们开始动手实战。


步骤1:用 Chrome 打开 Bing 搜索引擎,根据关键字天气预报进行搜索,看到下面的结果列表。在网页上看到这个被嵌入在 Bing 搜索结果的上海浦东新区的天气预报结果,但是点击右键之后,无法在新的浏览器窗口打开这个网页。


03f10b80b807c256cea6c3e80afe2f12.png


这不要紧,按 F12 打开 Chrome 开发者工具。选中 Elements 面板,然后单击天气预报页面,即可在 Elements 面板里,看到这个上海浦东新区的天气预报结果的 url,如下图所示:


fd15fc6b18a0b1683e96a5cc892e9120.png

把它保存下来,新开一个浏览器窗口,地址栏输入进去,自动重定向成:https://www.msn.cn/zh-cn/weather/forecast/in-上海市,浦东新区


3a2ac41352a0b6816b7037f1d6db4f59.png


把这个 url 记录下来。现在我们已经有了使用 Python 进行数据爬取的网页 url 了,下一步就可以开始编写 Python 代码了。


步骤2:本步骤的目标是,完成使用 Python 将指定 url 的网页源代码,全部爬取到本地的任务。


小朋友们需要让爸爸妈妈首先完成 Python 开发环境的搭建,和 ChatGPT 账号的申请。


向 ChatGPT 发出指令:


你是一个 Python 编程专家,现在有一个网址为 www.xxx.com 的网页,请你使用 Python 读取这个网页的源代码,将其存储在一个 Python 变量并且打印出来。


得到 ChatGPT 解答:


37c44da1201675b1f15873cf24283b11.png


需求很直接,ChatGPT 给出的代码质量也很高,直接拿来就能用。把代码粘贴到一个新建的 1.py 文件里,执行命令行 python 1.py


5cb5d5203c01ad1f5ebce077da1697d6.png


收到提示:


ModuleNotFoundError: No module named ‘requests’


ChatGPT 已经针对这个错误做过提醒了,需要先执行命令行 pip install requests 安装名叫 requests 的工具库。


1d74aded737dbe0bbbf8eaa329426c96.png


安装完毕之后重新执行 python 1.py 命令行,能看到 Python 代码调用 requests 工具库,从网络上读取的网页源代码,并打印到控制台上。第二步骤也顺利完成。


e64d4a6fb2b18a2f2eaef9b0fe088563.png


步骤3:在网页上定位到需要解析的天气预报信息。


假设我们需要在 Python 代码里,打印出 今天大部分地区天气晴朗,最低气温 20这个字段的值,我们打开 Chrome,选择 Elements 面板,然后单击网页这个字段,即可在 Elements 面板里查询到对应的 HTML 源代码实现,发现这个字段通过一个赋予了 summaryDescCompact-E1_1 class 的 p 元素实现。这里又可以顺便让小朋友积累两个词汇:classify 和 classification.


b8367704922a2165bc2894010afc8fe8.png

现在我们已经明确了下一步需要实现的目标:在 HTML 源代码里,找到 class 为 summaryDescCompact-E1_1 的 p 元素,并打印出来。


向 ChatGPT 发起指令:


你是一个 Python 编程专家,现在你已经用 python 代码将网页的源代码读取到了本地,存储在字符串变量 result 里。现在你想解析出一个 p 元素的值,这个 p 元素有一个 class,值为 summaryDescCompact-E1_1,请你编写 Python 代码,将这个特殊的 p 元素的值解析并打印出来。


ChatGPT 给出的结果:

d469bb22100e4df8688de7672a9193bd.png


这段代码首先使用 BeautifulSoup 解析 HTML 字符串,然后使用 find_all 方法找到所有 class 为 “summaryDescCompact-E1_1” 的 p 元素。最后,对每个找到的元素,使用 get_text 方法提取并打印其文本内容。


ChatGPT 给出的代码仍然质量非常高,粘贴进 1.py,直接就可以运行。


python 1.py 命令行执行完后,能打印出网页上看到的这个字段值了:

d21fd78e6b1a9c15bb22e4ff892a3ad7.png

再试试另一个字段,把这个 22°C 打印出来:


94a1375a607f2a35b21381aac4ec3fed.png


使用同样的办法,定位到这个字段在网页源代码中的位置:


716f9460681706d32cf1c3982fb8892c.png


再次找 ChatGPT 帮忙:


你是一个 Python 编程专家,现在你已经用 python 代码将网页的源代码读取到了本地,存储在字符串变量 result 里。现在你想解析出一个 a 元素的值,这个 p 元素有两个 class,值分别为 summaryTemperatureCompact-E1_1 和 summaryTemperatureHover-E1_1,请你编写 Python 代码,将这个特殊的 a 元素的 title 属性值解析并打印出来。


不知疲倦的 ChatGPT 给了解答:


cea8990ecb8c8cdfa4c44230b34f404e.png


我原封不动地照搬到了 1.py 里,程序运行,完美获得了结果。


9ac3c1527e1d9a8c2282e489187a3f41.png


完整的 19 行代码如下,没有一行是我手动编写的,全部抄自 ChatGPT.


b8928f876131c9c4d7deea34c64278d0.png


接下来根据小朋友的学习掌握情况,可以让他照着本文的套路,去打印天气预报网站上一些其他的字段值。如果对代码具体的语法感兴趣,也可以让 ChatGPT 详细解释,比如:


你是一个 Python 编程专家,请你将下面这段代码的含义,逐行解释。注意你的听众是小学一年级的学生,没有任何编程基础,所以你要用一年级学生能够看懂的词汇来解释。可以结合现实生活举一些实际例子。


ChatGPT 的回复,把编程类比成一个寻宝游戏,这回答还是比较有童趣的。


6e938c09236d3d0086926c39552d47cc.png


总之,我认为 ChatGPT 等 AIGC 工具的出现,进一步降低了编程的门槛。对于仅仅把编程当成爱好的一般人来说,编程的目的无非就是使用程序解决生活中的实际问题。ChatGPT 的出现,能更好地帮助我们达成这个目标。


对于计算机行业从业者来说,在 AIGC 时代,我们也要深度思考,当越来越多的普通人都能够熟练使用编程工具之后,计算机专业从业人员的核心竞争力到底是什么?

相关文章
|
1天前
|
存储 Kubernetes Cloud Native
探索Python编程的奥秘云原生时代的容器编排:Kubernetes入门与实践
【8月更文挑战第30天】本文以浅显易懂的方式,探讨了Python编程的核心概念和技巧。从基础语法到高级特性,再到实际应用案例,逐步引导读者深入理解Python编程的精髓。通过本文的学习,读者将能够掌握Python编程的基本技能,并激发进一步探索的兴趣。
19 13
|
1天前
|
运维 Kubernetes Cloud Native
云原生之旅:Kubernetes 集群的搭建与实践Python 编程入门:从零基础到编写实用脚本
【8月更文挑战第30天】在数字化转型的大潮中,云原生技术以其弹性、可扩展性及高效运维能力成为企业IT架构升级的关键。本文将通过实际操作演示如何在本地环境搭建一个简易的Kubernetes集群,带你领略云原生的魅力所在。从集群规划到服务部署,每一步都是对云原生理念的深刻理解和应用。让我们共同探索,如何通过Kubernetes集群的搭建和运维,提升业务灵活性和创新能力。
|
1天前
|
测试技术 Python
Python中的装饰器入门与实践
【8月更文挑战第30天】本文将带你走进Python中一个既神秘又强大的特性——装饰器。我们将从装饰器的基本概念入手,通过简单示例揭示其背后的原理。接着,我们会深入探索装饰器的高级用法,包括带参数的装饰器、装饰器嵌套和函数修饰符。最后,我们将通过一个实战项目来巩固所学知识,让装饰器成为你编程工具箱中的得力助手。
|
1天前
|
数据采集 运维 Devops
探索Python编程之美:从基础到进阶自动化运维的变革之路:从脚本到DevOps
【8月更文挑战第30天】在数字化时代的浪潮中,编程已经成为一门重要的技能。Python以其简洁明了的语法和强大的功能,成为了许多初学者的首选编程语言。本文将通过浅显易懂的语言,带领读者从Python的基础语法出发,逐步深入到面向对象编程、网络爬虫开发以及数据分析等高级应用,旨在帮助初学者构建扎实的编程基础,并激发他们进一步探索编程世界的热情。文章不仅分享实用的编程技巧,还将探讨如何将编程知识应用于解决实际问题,以期培养读者的问题解决能力和创新思维。
|
1天前
|
数据采集 数据可视化 数据挖掘
探索Python编程的奥秘:从基础到进阶Python中的装饰器:简化代码,提升效率
【8月更文挑战第30天】在这个数字技术飞速发展的时代,掌握一门编程语言已经成为了许多人追求的目标。Python,作为一门易于学习且功能强大的编程语言,吸引了无数初学者和专业人士的目光。本文将带领读者从Python的基础语法出发,逐步深入到函数、模块、面向对象编程等高级特性,最后通过实际案例展示Python在数据分析和网络爬虫领域的应用。无论你是编程新手还是希望提升自己的Python技能,这篇文章都将为你打开一扇通往Python世界的大门。
|
1天前
|
人工智能 数据挖掘 程序员
Python编程入门:从基础到实践
【8月更文挑战第30天】本文将引导你走进Python的世界,从最基础的语法开始,逐步深入到实际的项目开发。我们将一起探索Python的强大功能和灵活性,以及如何利用它来解决实际问题。无论你是编程新手,还是有一定经验的开发者,都能在这篇文章中找到有价值的内容。让我们一起开启Python的学习之旅吧!
|
1天前
|
数据采集 机器学习/深度学习 数据可视化
使用Python进行数据分析的入门指南
【8月更文挑战第30天】本文将引领读者进入Python在数据分析领域的应用,通过实际案例和代码示例,帮助初学者理解并掌握数据处理、可视化以及模型构建的基本技能。我们将从数据探索开始,逐步深入到数据清洗、分析和预测建模,最后以一个综合案例结束,旨在让读者能够独立完成一个数据分析项目。
|
1天前
|
机器学习/深度学习 数据采集 自然语言处理
Python中实现简单的文本情感分析未来触手可及:新技术趋势与应用深度解析
【8月更文挑战第30天】在数字化的今天,理解和分析用户生成的内容对许多行业至关重要。本文将引导读者通过Python编程语言,使用自然语言处理(NLP)技术,构建一个简单的文本情感分析工具。我们将探索如何利用机器学习模型来识别和分类文本数据中的情感倾向,从而为数据分析和决策提供支持。文章将涵盖从数据预处理到模型训练和评估的全过程,旨在为初学者提供一个易于理解且实用的入门指南。
|
1天前
|
算法 数据挖掘 开发者
探索编程之美:从小白到大牛的代码之旅从零到一:我的Python编程之旅
【8月更文挑战第30天】在数字世界的编织中,代码是构成一切的基石。本文将带领读者踏上一段代码探索之旅,从最初的迷茫与困惑,到逐渐找到方向,再到深入理解编程的本质和美学。通过个人的技术感悟和成长历程,我们将一同见证如何通过持续学习、实践和创新,在编程的道路上越走越远。
|
1天前
|
JSON IDE API
探索Python编程:打造你的第一个天气查询工具
【8月更文挑战第30天】在这篇文章中,我们将一起踏上Python编程的奇妙旅程,从零基础开始,逐步构建出属于自己的天气查询工具。文章将引导你了解Python语言的魅力,通过实际的项目操作,让你体验到编程的乐趣和成就感。无论你是编程新手还是希望扩展技能的老手,这篇文章都将为你提供宝贵的经验和知识。让我们一起探索代码的世界,解锁新技能,让技术改变生活!

热门文章

最新文章

推荐镜像

更多
下一篇
云函数