头图

现在国内小学生也开设了信息技术课,课程内容也涉及到了一些简单的编程实践,比如 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 时代,我们也要深度思考,当越来越多的普通人都能够熟练使用编程工具之后,计算机专业从业人员的核心竞争力到底是什么?


注销
1k 声望1.6k 粉丝

invalid