首页 > 其他分享 >AI 帮写爬虫,真的吗? CodeWhisperer:当然!

AI 帮写爬虫,真的吗? CodeWhisperer:当然!

时间:2023-10-11 22:36:22浏览次数:33  
标签:Python 示例 AI 代码 CodeWhisperer 爬虫 注释 帮写

2023 年技术圈什么最火?答案毫无疑问是 AIGC,伴随该项技术的发展,新的编程方式也出现了,那就是用 AI 辅助编程,有了 AI 的加持,开发人员的效率和生产力可以得到大幅度的提升。今天我们就介绍一款非常棒的人工智能编程工具 Amazon CodeWhisperer , 相信我,用上他之后,你的工作效率至少能翻一倍。

AI 帮写爬虫,真的吗? CodeWhisperer:当然!

在日常的编码工作中,你是否会碰到如下难题?

  1. 接触了一款全新的 Python 模块,不知道如何开启 hello world;
  2. 模块的某个方法,忘记了参数和返回值,反复切换手册会打断思路;
  3. 不想写注释;
  4. 写了一段代码,但是并不健壮,担心有难以发现的漏洞;
  5. ……

如果你正在被这些问题困扰,那 Amazon CodeWhisperer 能非常好的解决上述问题。

下面跟随我的脚步,开启 CodeWhisperer 的实践吧!

CodeWhisperer 初始化

CodeWhisperer 支持的 IDE 包括 Visual Studio(VS)Code(本篇博客使用的 IDE) 和 JetBrains IDE(IntelliJ、PyCharm、CLion、GoLand、WebStorm、Rider、PhpStorm、RubyMine 和 DataGrip),安装过程只需要几分钟,这里我们不详细展开讲解,大家可以参考 官方文档 ,官方还贴心的准备的视频教程~

本篇博客我们使用 VSCode 完成一个爬虫项目实践,可以直接在 VSCode 插件中检索【CodeWhisperer】,直接安装即可(已经有将近 200W 的安装量啦,要抓紧跟上大家的节奏),安装完毕,在 VSCode 侧边栏中会出现 CodeWhisperer 插件图标,如下所示。

AI 帮写爬虫,真的吗? CodeWhisperer:当然!

初始化过程中最重要的就是账号的链接,点击上图【Connect to ……】链接,之后按照步骤登录账号,一系列的操作之后,浏览器出现下图绿色状态提示界面,此时账号对接已经完成。

AI 帮写爬虫,真的吗? CodeWhisperer:当然!

返回到 VSCode 中,会发现 Amazon CodeWhisperper 帮助手册已经打开,建议阅读一下 ,里面已经整理了插件的基础使用说明。

AI 帮写爬虫,真的吗? CodeWhisperer:当然!

与此同时,VSCode 左下角开发者工具(DEVELOPER TOOLS)也已经显示链接到 Builder ID。至此,我们的前置工作已经全部完成,下面可以开始进行工具使用。

AI 帮写爬虫,真的吗? CodeWhisperer:当然!

CodeWhisperper 使用

简单逻辑示例

CodeWhisperer 插件安装完毕,默认会开启 Auto-Suggesions(自动建议模式),此时当我们在编写注释或代码之后,CodeWhisperer 会自动给我们提供代码提示,这个过程就像超强版的语法提示,如果你还没有安装好插件,可以先看一下动图,整体感受一下。

AI 帮写爬虫,真的吗? CodeWhisperer:当然!

CodeWhisperer 的代码提示,在 VSCode 中可以使用左右方向键进行选择,使用 Tab 进行确认,其他按键表示不采纳提示代码。初次体验下来,正如插件名称(Whisperer:低语者)所描述的一样,就像是编辑器在轻轻的和我们说着即将要敲入的代码,如果同意,可以一键采纳,不同意,直接忽略即可。

代码翻译示例

拥有此功能之后,很多简单的程序完全可以基于智能提示编写完毕,但这肯定不够,我们需要 CodeWhisperer 完成更有挑战的事情,在 Python 爬虫领域,经常需要将一段前端 JS 代码用 Python 重新实现。

下面提供一段 JavaScript 中生成 UUID的代码,然后用 Python 复写。

 p = function(e) {
  var t = e || null;
  return null == t && (t = "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (function(e) {
      var t = 16 * Math.random() | 0;
      return ("x" === e ? t : 3 & t | 8).toString(16)
  }
  ))),

在 VSCode 中直接输入你的需求,然后 CodeWhisperper 会给我们一个完整的实现示例,可以看到代码重写完全正确。

AI 帮写爬虫,真的吗? CodeWhisperer:当然!

加密函数示例

除了翻译代码外,在编写爬虫案例的时候,如果你对某些加密函数使用详情有遗忘,可以让 CodeWhisperer 直接给出示例,快速唤醒自己的记忆。

下图为输入注释 # 使用 Python 实现 hmac_sha256 加密函数 获取函数的使用示例代码。

AI 帮写爬虫,真的吗? CodeWhisperer:当然!

如果在使用 CodeWhisperer 的过程中按错按键,即没有使用 Tab 确认代码,可以随时按下快捷键 Alt+C,CodeWhisperer 代码提示会再次出现,又可以继续加速你的开发效率了。

混合加密示例

如果将上述逻辑都定义为单逻辑,那下述需求就是一个复合逻辑示例了,在实际编码中,会碰到需要将两种加密混合使用的情况,需求如下:

使用 Python 实现 Base64 + AES 加密字符串

在 IDE 中输入上述注释信息,然后回车,CodeWhisperer 就会自动生成后续代码,其中部分逻辑可以一次性完成,效果如下,其中在核心逻辑部分,CodeWhisperer 表现非常优秀,答案秒输出,并且直接可用。

AI 帮写爬虫,真的吗? CodeWhisperer:当然!

算法模板示例

在业务逻辑的编写过程中,有时会用到常见算法,例如快排、堆排、哈希等,这些算法很多都类似模板代码,在编写的时候,如果可以一键生成,能大幅度提高代码编写速度,包括算法改写速度,在 CodeWhisperer 中,可以通过注释快速生成。

使用 Python 生成快排代码

AI 帮写爬虫,真的吗? CodeWhisperer:当然!

体验 5 个示例之后,CodeWhisperer 的使用非常简单,而且无需切换编辑窗口,在 IDE 的代码文件中直接完成了 AIGC 的问答流程,响应速度非常快,代码准确性很高。

单独的案例对 CodeWhisperer 已经没有难度了,接下来我们尝试完成一个完整的 Python 爬虫案例(咱们看一下只写注释,能不能完成一个合格的爬虫采集程序)。

CodeWhisperer 项目实战

目标采集站点为作者博客,无侵权问题。

编写爬虫基础框架注释,包含如下内容:

  1. 程序使用的采集模块
  2. 目标采集站点地址
  3. 采集的目标标签
  4. 数据存储到文件
  5. 发送采集到的数据到指定邮箱

第一步:输入如下注释,获取网页响应内容

使用 Python requests 模块采集 https://blog.csdn.net/hihell?type=blog

# 使用 Python requests 模块采集 https://blog.csdn.net/hihell?type=blog

import requests

url = 'https://blog.csdn.net/hihell?type=blog'

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
    }
response = requests.get(url, headers=headers)

print(response.text)

写完注释,直接回车之后,CodeWhisperer 直接给我们生成了对应的代码,过程中只需要按下 回车和 Tab 键即可。

如果你觉得上述代码有些简单,可以在代码基础上继续完善,例如将请求头进行完善,增加 referer 和 host 参数,直接在需要修改的位置添加注释即可。

AI 帮写爬虫,真的吗? CodeWhisperer:当然!

第二步:编写目标数据采集函数

这一步,我们要使用 lxml 模块中的 etree 提取目标标签,继续将我们的逻辑输入到注释注释中,然后回车。

使用 etree 模块提取网页响应中所有的 article 标签

# 使用 etree 模块提取网页响应中所有的 article 标签

from lxml import etree

html = etree.HTML(response.text)

article_tags = html.xpath('//article')

print(article_tags)

此时目标博客标签已经被初步提取,下面要将标题和超链接地址进行再次提取,这里的注释需要尽可能编写清晰,如果你对 Python 爬虫技术栈有一定了解,到这里就会发现 CodeWhisperer 对代码编写提速效果。

# 循环 article_tags 提取其内部的超链接标签的 href 属性和 h4 标签文本
# 注意标签结构是 超链接 a 标签含后代 h4 标签
for article in article_tags:
    href = article.xpath('./a/@href')[0]
    title = article.xpath('./a//h4/text()')[0]
    print(href, title)

第三步:数据存入到 csv 文件中

写入文件的逻辑属于常见操作,直接输入函数需求,相信 CodeWhisperer 会直接生成的,输入的参考注释如下:

编写一个 csv 文件写入函数,其包含 2 个参数,分别是 title 和 href

# 编写一个 csv 文件写入函数,其包含 2 个参数,分别是 title 和 href

def write_to_csv(title, href):
    with open('codewhisperper_demo.csv', 'a', encoding='utf-8') as f:
        f.write(title + ',' + href + '\n')

write_to_csv() 函数调用放到上述循环中即可完成本步骤。再次运行代码,在爬虫目录会生成对应的文件,打开文件得到目标数据,效果图如下所示。

AI 帮写爬虫,真的吗? CodeWhisperer:当然!

到这里一个简单的爬虫写完了,但是我们的工作还没有完成,要继续优化这个程序。

第四步:将采集到的数据,发送到 163 邮箱

输入注释:# 编写一个邮件发送函数,将刚刚生成的文件 codewhisperper_demo.csv 发送到指定邮箱,CodeWhisperer 瞬间就会帮助我们生成一个参考函数,实际效果如下图所示。

AI 帮写爬虫,真的吗? CodeWhisperer:当然!

将上述代码中的账号和密码修改为自己真实数据,即可实现一键发送邮件。

打开收件箱,可以看到刚刚的邮件已经发送成功,CodeWhisperer 给我们提供了一种邮件发送的实现,你可以再其基础上进行改造,以满足个性化的需求。

AI 帮写爬虫,真的吗? CodeWhisperer:当然!

CodeWhisperer 使用总结

在博客开篇,我提出了编码过程中几个比较头疼的问题,尤其是第二个,程序员在编码过程中总是切出去查找代码示例和文档手册,从而打断编码思路,而 CodeWhisperer 非常完美的解决了该问题,在编码的过程中,Amazon CodeWhisperer 自动提供编码建议,同意就使用,不同意就舍弃,真正实现了沉浸式编程。

除此之外,CodeWhisperer 还可以基于代码和注释生成新的业务代码,尤其当我们 Python 工程师接触一个新的模块时,他可以快速的产出示例代码,而且生成的代码与我们编码风格非常相似,甚至编码风格和命名规则都可以完美学习到。在编码代码过程中,CodeWhisperer 还会自动为我们的代码提供注释参考,让我们将更多精力投入到业务逻辑中。

将 CodeWhisperer 用起来吧,几分钟之后,你就会深刻的感受到编码效率的提升!

标签:Python,示例,AI,代码,CodeWhisperer,爬虫,注释,帮写
From: https://www.cnblogs.com/happymeng/p/17758379.html

相关文章

  • 如何解决小程序打开授权报错openSetting:fail can only be invoked by user TAP gestu
    要解决这个问题,你需要在页面上为openSetting接口添加一个点击事件。根据微信小程序的文档,openSetting接口只能通过用户点击行为(如tap事件)来触发。以下是一个简单的示例代码:<!--index.wxml--><view><buttonbindtap="openSetting">打开授权设置</button></view......
  • 开局就集成tailwindcss(一)
    1.使用cli创建项目npmcreatevite@latest项目名--templatereact-ts 2.因为css功底偏弱,所以必须也是完全有必要的,在这里必须集成一下tailwindcss,npminstalltailwindcssautoprefixerpostcss-cli#额外的安装2个配套的插件#autoprefixer自动添加样式的前缀,很......
  • AI如何帮助Salesforce从业者找工作?
    在当今竞争激烈的就业市场中,找到满意的工作是一项艰巨的任务。成千上万的候选人竞争一个岗位,你需要利用一切优势从求职大军中脱颖而出。这就是AI的用武之地,特别是像ChatGPT这样的人工智能工具,可以成为你的秘密武器。本篇文章将探讨AI如何帮助你加快Salesforce求职速度。01即时......
  • 方案:餐厅饭店AI智能视频监控可视化监管系统搭建方案
    随着大众对食品卫生的要求逐渐提升,明厨亮灶已成为很多人选择就餐点的一大要求,明厨亮灶的产生对保障大众食安起到了十分显著的作用,后厨作为食品安全重要场所,需要“亮”出来,前厅也同时需要监控系统的保护,那么智能分析算法可以怎样应用在饭店和餐馆日常监控之中呢?具体方案1、视频监......
  • 方案:餐厅饭店AI智能视频监控可视化搭建方案
    随着大众对食品卫生的要求逐渐提升,明厨亮灶已成为很多人选择就餐点的一大要求,明厨亮灶的产生对保障大众食安起到了十分显著的作用,后厨作为食品安全重要场所,需要“亮”出来,前厅也同时需要监控系统的保护,那么智能分析算法可以怎样应用在饭店和餐馆日常监控之中呢?具体方案1、视频监控......
  • 巧用指标平台DataIndex,五步法轻松实现指标管理
    开发部门在做指标加工的全流程中,是否经常出现如下问题:·业务部门看指标数据的时候,看到两个名称相似的指标,不清楚两个指标的差异性,来咨询开发部门指标计算口径,开发部门配合业务部门翻找代码,找出指标口径差异性,影响工作效率·业务部门看指标数据的时候,总会出现不同页面的同一指......
  • 智能视频分析系统AI智能分析网关V3告警图片不显示该如何解决?
    AI智能分析网关V3包含有20多种算法,包括人脸、人体、车辆、车牌、行为分析、烟火、入侵、聚集、安全帽、反光衣等等,可应用在安全生产、通用园区、智慧食安、智慧城管、智慧煤矿等场景中。将网关硬件结合我们的视频监控系统EasyCVR一起使用,可以实现多现场的前端摄像头等设备统一集中......
  • 智能视频分析系统AI智能分析网关V3触发告警图片不显示该如何解决?
    AI智能分析网关V3包含有20多种算法,包括人脸、人体、车辆、车牌、行为分析、烟火、入侵、聚集、安全帽、反光衣等等,可应用在安全生产、通用园区、智慧食安、智慧城管、智慧煤矿等场景中。将网关硬件结合我们的视频监控系统EasyCVR一起使用,可以实现多现场的前端摄像头等设备统一集中......
  • 科技云报道:不堪忍受英伟达霸权,微软、OpenAI纷纷自研AI芯片
    科技云报道原创。英伟达是当之无愧的“AI算力王者”,A100、H100系列芯片占据金字塔顶尖位置,是ChatGPT这样的大型语言模型背后的动力来源。但面对英伟达的独霸天下,科技巨头们都纷纷下场自研AI芯片。10月6日,媒体援引知情人士消息称,微软计划在下个月的年度开发者大会上推出首款为人工智......
  • 群晖Synology存储空间管理器支持的RAID类型
    创建存储池时,先选择RAID类型。不同类型的RAID可提供不同级别的数据保护、存储功能及性能。SynologyNAS目前支持以下类型的RAID:Basic:使用一个硬盘来创建存储池。Basic存储池不提供数据冗余。JBOD*:至少合并两个硬盘来创建存储池。JBOD存储池不提供数据冗余。JBOD存储池......