用ChatGPT写一个数据采集程序

简介: 既然ChatGPT可以理解并生成代码,那么自然而然,它的作用不仅仅是帮助学习代码,同样也可以直接用在实际的软件开发当中。

入门教程、案例源码、学习资料、读者群

请访问:python666.cn


大家好,欢迎来到 Crossin的编程教室 !


上次我们讨论了ChatGPT在辅助编程学习上的一些用法:


如何用ChatGPT学Python


既然ChatGPT可以理解并生成代码,那么自然而然,它的作用不仅仅是帮助学习代码,同样也可以直接用在实际的软件开发当中。


对于网页上的数据采集及处理是Python的常见应用场景之一。我们来看下ChatGPT是不是也能完成这样的任务。


假设我们现在需要抓取并整理某个网页上的表格数据:


https://python666.cn/static/score.html



我们直接来问问ChatGPT,能不能给个抓取的代码:



ChatGPT给了我们一份代码,但很遗憾,把这个代码复制到编辑器中运行后,生成的Excel是空的。


简单调试后发现,原来是因为页面上的表头元素用的是<th>标签



而ChatGPT因为没有获知具体的页面代码信息,直接当做<td>标签来处理,所以没采集到表头信息。



这种情况下,我们可以手动对代码做一些修改。


或者,我们点击回答下方的“Regenerate response”,让它重新回答一次试试:



这次ChatGPT给出的代码比之前简洁:


import pandas as pd
# 读取网页上的表格
url = 'https://python666.cn/static/score.html'
tables = pd.read_html(url)
# 假设目标表格是第一个表格
table = tables[0]
# 将表格保存为Excel文件
output_file = 'table.xlsx'
table.to_excel(output_file, index=False)
print(f"表格已保存为 {output_file}")


运行后,成功得到了我们要的结果:



顺利拿到数据后,我们再进一步,让ChatGPT来对数据进行排序。当然,在排序前,我们需要告诉它关于表格内容的必要信息:



代码:


import pandas as pd
# 读取网页上的表格
url = 'https://python666.cn/static/score.html'
tables = pd.read_html(url)
# 假设目标表格是第一个表格
table = tables[0]
# 将缺失值替换为0
table.fillna(0, inplace=True)
# 计算每个学生的均分
table['均分'] = table.mean(axis=1)
# 按均分降序排序
table.sort_values(by='均分', ascending=False, inplace=True)
# 将表格保存为Excel文件
output_file = 'sorted_table.xlsx'
table.to_excel(output_file, index=False)
print(f"按均分排序后的表格已保存为 {output_file}")


这次,ChatGPT完美实现了我们提出的需求:



可以看出,虽然ChatGPT很强大,但并不能保证每次生成的代码都是完美,仍然可能需要引导它修正或人工干预。


但即便如此,它也已经算得上一个十分得力的编程助手,可以大大提高开发效率。尤其像数据处理这种场景,以往开发时常常需要查找各种函数及其参数的使用方法。现在有了ChatGPT,只要准确描述数据格式及需求,就可以立刻得到相应的处理代码,非常的方便。


我现在做数据分析已经快离不开它了。

相关文章
|
数据可视化 API vr&ar
探索Qt 3D之旅:从基础到实战,打造引人入胜的三维界面与应用
探索Qt 3D之旅:从基础到实战,打造引人入胜的三维界面与应用
2543 3
|
存储 Prometheus 监控
高可用prometheus集群方案选型分享
高可用prometheus集群方案选型分享
7271 2
高可用prometheus集群方案选型分享
|
网络协议 Unix 应用服务中间件
Nginx极简实战—Nginx服务器高性能优化配置,轻松实现10万并发访问量
如何使Nginx轻松实现10万并发访问量。通常来说,一个正常的 Nginx Linux 服务器可以达到 500,000 – 600,000 次/秒 的请求处理性能,如果Nginx服务器经过优化的话,则可以稳定地达到 904,000 次/秒 的处理性能,大大提高Nginx的并发访问量。
Nginx极简实战—Nginx服务器高性能优化配置,轻松实现10万并发访问量
|
5月前
|
安全 Java 数据安全/隐私保护
Springboot应用开发-SpringBootSecurity
Spring Boot Security 是 Spring 提供的安全框架,集成了身份认证和授权功能,帮助开发者快速构建安全的应用程序。本篇博客将从功能介绍到配置和实践,带您全面了解 Spring Boot Security。
922 1
Springboot应用开发-SpringBootSecurity
|
消息中间件 负载均衡 持续交付
构建可扩展的微服务架构:从设计到实现
在微服务架构的世界里,设计和实现可扩展性是至关重要的。然而,开发者往往面临着如何在系统复杂性和性能之间取得平衡的问题。本文通过深入探讨微服务架构的关键设计原则和实践,展示了如何从初期设计到最终实现,构建一个既高效又可扩展的系统架构。
|
人工智能 搜索推荐 安全
有道推出小采样数字人平台
【2月更文挑战第21天】有道推出小采样数字人平台
330 1
有道推出小采样数字人平台
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的银行账目账户管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的银行账目账户管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
221 0
|
存储 Java 数据库连接
MyBatis Plus中的批量插入:通过开启rewriteBatchedStatements=true
MyBatis Plus中的批量插入:通过开启rewriteBatchedStatements=true
1486 0
|
机器学习/深度学习 人工智能 数据挖掘
Paddle 印刷电路板(PCB)瑕疵检测
Paddle 印刷电路板(PCB)瑕疵检测
609 1
Paddle 印刷电路板(PCB)瑕疵检测
|
存储 弹性计算 网络协议
一文读懂OSS、NAS、EBS有什么区别?
本文主要介绍常用的存储类型及它们之间的对比差异,辅助帮助大家在不同需求和场景下选择合适的存储类型。

热门文章

最新文章