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

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

时间:2023-11-19 10:55:55浏览次数:43  
标签:网页 Python 代码 编程 ChatGPT 源代码

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

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

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

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

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

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

下面我们开始动手实战。

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

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


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

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

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

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

向 ChatGPT 发出指令:

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

得到 ChatGPT 解答:

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

收到提示:

ModuleNotFoundError: No module named 'requests'

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

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

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

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

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

向 ChatGPT 发起指令:

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

ChatGPT 给出的结果:

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

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

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

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

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

再次找 ChatGPT 帮忙:

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

不知疲倦的 ChatGPT 给了解答:

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

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

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

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

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

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

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

标签:网页,Python,代码,编程,ChatGPT,源代码
From: https://www.cnblogs.com/sap-jerry/p/17841716.html

相关文章

  • 小学四则运算编程实践(选做)
    从《构建之法》第一章的“程序”例子出发,像阿超那样,花二十分钟写一个能自动生成小学四则运算题目的命令行“软件”,满足以下需求:(以下参考博客链接:http://www.cnblogs.com/jiel/p/4810756.html)include<stdio.h>include<stdlib.h>include<time.h>voidgenerate_arithmetic......
  • 您可以使用 ChatGPT 做十件事
    ChatGPT是一款功能强大的人工智能聊天机器人,可以回答广泛的问题并就各种主题提供连贯的解释。它具有实际应用,例如创建定制简历、制作笑话、解释复杂主题、解决数学问题以及提供人际关系建议。ChatGPT还可以用于创作音乐、编码协助、操作媒体文件、电影推荐、玩游戏、烹饪协助、改......
  • 【教3妹学编程-java基础6】详解父子类变量、代码块、构造函数执行顺序
    -----------------第二天------------------------本文先论述父子类变量、代码块、构造函数执行顺序的结论,然后通过举例论证,接着再扩展,彻底搞懂静态代码块、动态代码块、构造函数、父子类、类加载机制等知识体系。温故而知新,建议点赞收藏~ 1先说结论 面试官:好的,你说一下java中父......
  • 【教3妹学编程-算法题】三个无重叠子数组的最大和
    2哥 :3妹,咋啦?一副苦大仇深的样子?3妹:不开心呀不开心,羽生结弦宣布离婚。2哥 :羽生什么?3妹:羽生结弦!2哥 :什么结弦?3妹:羽生结弦!!!2哥:羽生结弦是谁?他离婚关你啥事啊?3妹:你不知道,他是日本著名花滑运动员,前几个月刚宣布结婚,没想到这么快就离了。真是短时间内震惊我两次!2哥 :哎,人家怎......
  • python:第二十三章:程序结构之分支结构
    一,if语句(单分支结构)if条件:   #执行代码块条件是一个表达式,它的值为布尔类型,值为True或False。如果条件为True,则执行冒号后面缩进的代码块;如果条件为False,则跳过代码块不执行。例子:123age=input('请输入你的年龄:')ifint(age)>=18: ......
  • python:第二十四章:三元运算符
    一,三元运算符的语法:value_if_trueifconditionelsevalue_if_false相当于:ifcondition:   value_if_trueelse:   value_if_true它的作用:简化了代码说明:刘宏缔的架构森林—专注it技术的博客,网站:https://blog.imgtouch.com原文: https://blog.imgtouch.c......
  • python:第二十五章:range函数
    一,range函数的功能1,语法range(start,stop,step)参数 start:序列的起始值,如果不指定,默认为0。stop:序列的结束值(不包含),必须指定。step:序列的步长,如果不指定,默认为1。返回:一个整数序列,数据类型是:range应用场景:用于循环2,整数序列是从起始值到结束值(不包含结束值本身)的......
  • python:第二十一章:input接收输入
    一,input函数的用途input()函数用来从键盘接收用户的输入,它的参数是提示用户输入的信息,我们把接收到的数据保存到变量中,进行后续的操作例子:123456numPhysics=input("请输入物理成绩:")numChemical=input("请输入化学成绩:")#接收的数字转为float类......
  • python:第二十二章:程序结构之顺序结构
    一,程序的三种结构:顺序结构:按照代码顺序依次执行选择结构:根据条件判断选择执行不同的代码块循环结构:重复执行一段代码,直到满足退出条件二,顺序结构的特点:顺序执行按从上到下的顺序依次执行,每一条语句都会被执行且只执行一次:例子:123456#顺序执行,从......
  • 熟悉编程语言
    现在最受欢迎的编程语言top50这50种编程语言的编程泛型命令式:Swift,Ada,C++面向过程:Fortran,Pascal,Lua,C面向对象:Python,C++,Java,E,Agora,Ruby,F#,COBOL,PHP,go,Objective-C声明式:SQL,CSS函数式:Lisp,Scala,logo,R,ML,Haskell,Scheme逻辑式:Prolog,C我想学习的编程语......