AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

2023 年技術(shù)圈什么最火?答案毫無(wú)疑問是 AIGC,伴隨該項(xiàng)技術(shù)的發(fā)展,新的編程方式也出現(xiàn)了,那就是用 AI 輔助編程,有了 AI 的加持,開發(fā)人員的效率和生產(chǎn)力可以得到大幅度的提升。今天我們就介紹一款非常棒的人工智能編程工具 Amazon CodeWhisperer , 相信我,用上他之后,你的工作效率至少能翻一倍。

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

在日常的編碼工作中,你是否會(huì)碰到如下難題?

1.? 接觸了一款全新的 Python 模塊,不知道如何開啟 hello world;

2.? 模塊的某個(gè)方法,忘記了參數(shù)和返回值,反復(fù)切換手冊(cè)會(huì)打斷思路;

3.? 不想寫注釋;

4.? 寫了一段代碼,但是并不健壯,擔(dān)心有難以發(fā)現(xiàn)的漏洞;

5.? ……

如果你正在被這些問題困擾,那 Amazon CodeWhisperer 能非常好的解決上述問題。

下面跟隨我的腳步,開啟 CodeWhisperer 的實(shí)踐吧!

CodeWhisperer 初始化

CodeWhisperer 支持的 IDE 包括 Visual Studio(VS)Code(本篇博客使用的 IDE) 和 JetBrains IDE(IntelliJ、PyCharm、CLion、GoLand、WebStorm、Rider、PhpStorm、RubyMine 和 DataGrip),安裝過程只需要幾分鐘,這里我們不詳細(xì)展開講解,大家可以參考 官方文檔 ,官方還貼心的準(zhǔn)備的視頻教程~

本篇博客我們使用 VSCode 完成一個(gè)爬蟲項(xiàng)目實(shí)踐,可以直接在 VSCode 插件中檢索【CodeWhisperer】,直接安裝即可(已經(jīng)有將近 200W 的安裝量啦,要抓緊跟上大家的節(jié)奏),安裝完畢,在 VSCode 側(cè)邊欄中會(huì)出現(xiàn) CodeWhisperer 插件圖標(biāo),如下所示。

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

初始化過程中最重要的就是賬號(hào)的鏈接,點(diǎn)擊上圖【Connect to ……】鏈接,之后按照步驟登錄賬號(hào),一系列的操作之后,瀏覽器出現(xiàn)下圖綠色狀態(tài)提示界面,此時(shí)賬號(hào)對(duì)接已經(jīng)完成。

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

返回到 VSCode 中,會(huì)發(fā)現(xiàn) Amazon CodeWhisperper 幫助手冊(cè)已經(jīng)打開,建議閱讀一下 ,里面已經(jīng)整理了插件的基礎(chǔ)使用說(shuō)明。

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

與此同時(shí),VSCode 左下角開發(fā)者工具(DEVELOPER TOOLS)也已經(jīng)顯示鏈接到 Builder ID。至此,我們的前置工作已經(jīng)全部完成,下面可以開始進(jìn)行工具使用。

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

CodeWhisperper 使用

簡(jiǎn)單邏輯示例

CodeWhisperer 插件安裝完畢,默認(rèn)會(huì)開啟 Auto-Suggesions(自動(dòng)建議模式),此時(shí)當(dāng)我們?cè)诰帉懽⑨尰虼a之后,CodeWhisperer 會(huì)自動(dòng)給我們提供代碼提示,這個(gè)過程就像超強(qiáng)版的語(yǔ)法提示,如果你還沒有安裝好插件,可以先看一下動(dòng)圖,整體感受一下。

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

CodeWhisperer 的代碼提示,在 VSCode 中可以使用左右方向鍵進(jìn)行選擇,使用?Tab 進(jìn)行確認(rèn),其他按鍵表示不采納提示代碼。初次體驗(yàn)下來(lái),正如插件名稱(Whisperer:低語(yǔ)者)所描述的一樣,就像是編輯器在輕輕的和我們說(shuō)著即將要敲入的代碼,如果同意,可以一鍵采納,不同意,直接忽略即可。

代碼翻譯示例

擁有此功能之后,很多簡(jiǎn)單的程序完全可以基于智能提示編寫完畢,但這肯定不夠,我們需要 CodeWhisperer 完成更有挑戰(zhàn)的事情,在 Python 爬蟲領(lǐng)域,經(jīng)常需要將一段前端 JS 代碼用 Python 重新實(shí)現(xiàn)。

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

在 VSCode 中直接輸入你的需求,然后 CodeWhisperper 會(huì)給我們一個(gè)完整的實(shí)現(xiàn)示例,可以看到代碼重寫完全正確。

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

加密函數(shù)示例

除了翻譯代碼外,在編寫爬蟲案例的時(shí)候,如果你對(duì)某些加密函數(shù)使用詳情有遺忘,可以讓 CodeWhisperer ?直接給出示例,快速喚醒自己的記憶。

下圖為輸入注釋 # 使用 Python 實(shí)現(xiàn) hmac_sha256 加密函數(shù) 獲取函數(shù)的使用示例代碼。

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

如果在使用 CodeWhisperer 的過程中按錯(cuò)按鍵,即沒有使用 Tab 確認(rèn)代碼,可以隨時(shí)按下快捷鍵 Alt+C,CodeWhisperer 代碼提示會(huì)再次出現(xiàn),又可以繼續(xù)加速你的開發(fā)效率了。

混合加密示例

如果將上述邏輯都定義為單邏輯,那下述需求就是一個(gè)復(fù)合邏輯示例了,在實(shí)際編碼中,會(huì)碰到需要將兩種加密混合使用的情況,需求如下:

# 使用 Python 實(shí)現(xiàn) Base64 + AES 加密字符串

在 IDE 中輸入上述注釋信息,然后回車,CodeWhisperer 就會(huì)自動(dòng)生成后續(xù)代碼,其中部分邏輯可以一次性完成,效果如下,其中在核心邏輯部分,CodeWhisperer 表現(xiàn)非常優(yōu)秀,答案秒輸出,并且直接可用。

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

算法模板示例

在業(yè)務(wù)邏輯的編寫過程中,有時(shí)會(huì)用到常見算法,例如快排、堆排、哈希等,這些算法很多都類似模板代碼,在編寫的時(shí)候,如果可以一鍵生成,能大幅度提高代碼編寫速度,包括算法改寫速度,在 CodeWhisperer 中,可以通過注釋快速生成。

使用 Python 生成快排代碼

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

體驗(yàn) 5個(gè)示例之后,CodeWhisperer 的使用非常簡(jiǎn)單,而且無(wú)需切換編輯窗口,在 IDE 的代碼文件中直接完成了 AIGC 的問答流程,響應(yīng)速度非??欤a準(zhǔn)確性很高。

單獨(dú)的案例對(duì) CodeWhisperer 已經(jīng)沒有難度了,接下來(lái)我們嘗試完成一個(gè)完整的 Python 爬蟲案例(咱們看一下只寫注釋,能不能完成一個(gè)合格的爬蟲采集程序)。

CodeWhisperer 項(xiàng)目實(shí)戰(zhàn)

目標(biāo)采集站點(diǎn)為作者博客,無(wú)侵權(quán)問題。

編寫爬蟲基礎(chǔ)框架注釋,包含如下內(nèi)容:

1.?程序使用的采集模塊

2.?目標(biāo)采集站點(diǎn)地址

3.?采集的目標(biāo)標(biāo)簽

4.?數(shù)據(jù)存儲(chǔ)到文件

5.?發(fā)送采集到的數(shù)據(jù)到指定郵箱

第一步:輸入如下注釋,獲取網(wǎng)頁(yè)響應(yīng)內(nèi)容

#

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

寫完注釋,直接回車之后,CodeWhisperer 直接給我們生成了對(duì)應(yīng)的代碼,過程中只需要按下 回車和 Tab 鍵即可。

如果你覺得上述代碼有些簡(jiǎn)單,可以在代碼基礎(chǔ)上繼續(xù)完善,例如將請(qǐng)求頭進(jìn)行完善,增加 referer 和 host 參數(shù),直接在需要修改的位置添加注釋即可。

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

第二步:編寫目標(biāo)數(shù)據(jù)采集函數(shù)

這一步,我們要使用 lxml 模塊中的 etree 提取目標(biāo)標(biāo)簽,繼續(xù)將我們的邏輯輸入到注釋注釋中,然后回車。

# 使用 etree 模塊提取網(wǎng)頁(yè)響應(yīng)中所有的 article 標(biāo)簽

# 使用 etree 模塊提取網(wǎng)頁(yè)響應(yīng)中所有的 article 標(biāo)簽

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

print(article_tags)

此時(shí)目標(biāo)博客標(biāo)簽已經(jīng)被初步提取,下面要將標(biāo)題和超鏈接地址進(jìn)行再次提取,這里的注釋需要盡可能編寫清晰,如果你對(duì) Python 爬蟲技術(shù)棧有一定了解,到這里就會(huì)發(fā)現(xiàn) CodeWhisperer 對(duì)代碼編寫提速效果。

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

第三步:數(shù)據(jù)存入到 csv 文件中

寫入文件的邏輯屬于常見操作,直接輸入函數(shù)需求,相信 CodeWhisperer 會(huì)直接生成的,輸入的參考注釋如下:

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

write_to_csv() 函數(shù)調(diào)用放到上述循環(huán)中即可完成本步驟。再次運(yùn)行代碼,在爬蟲目錄會(huì)生成對(duì)應(yīng)的文件,打開文件得到目標(biāo)數(shù)據(jù),效果圖如下所示。

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

到這里一個(gè)簡(jiǎn)單的爬蟲寫完了,但是我們的工作還沒有完成,要繼續(xù)優(yōu)化這個(gè)程序。

第四步:將采集到的數(shù)據(jù),發(fā)送到 163 郵箱

輸入注釋:# 編寫一個(gè)郵件發(fā)送函數(shù),將剛剛生成的文件 codewhisperper_demo.csv 發(fā)送到指定郵箱,CodeWhisperer 瞬間就會(huì)幫助我們生成一個(gè)參考函數(shù),實(shí)際效果如下圖所示。

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

將上述代碼中的賬號(hào)和密碼修改為自己真實(shí)數(shù)據(jù),即可實(shí)現(xiàn)一鍵發(fā)送郵件。

打開收件箱,可以看到剛剛的郵件已經(jīng)發(fā)送成功,CodeWhisperer 給我們提供了一種郵件發(fā)送的實(shí)現(xiàn),你可以再其基礎(chǔ)上進(jìn)行改造,以滿足個(gè)性化的需求。

AI 幫寫爬蟲,真的嗎? CodeWhisperer:當(dāng)然!

CodeWhisperer 使用總結(jié)

在博客開篇,我提出了編碼過程中幾個(gè)比較頭疼的問題,尤其是第二個(gè),程序員在編碼過程中總是切出去查找代碼示例和文檔手冊(cè),從而打斷編碼思路,而 CodeWhisperer 非常完美的解決了該問題,在編碼的過程中,Amazon CodeWhisperer 自動(dòng)提供編碼建議,同意就使用,不同意就舍棄,真正實(shí)現(xiàn)了沉浸式編程。

除此之外,CodeWhisperer 還可以基于代碼和注釋生成新的業(yè)務(wù)代碼,尤其當(dāng)我們 Python 工程師接觸一個(gè)新的模塊時(shí),他可以快速的產(chǎn)出示例代碼,而且生成的代碼與我們編碼風(fēng)格非常相似,甚至編碼風(fēng)格和命名規(guī)則都可以完美學(xué)習(xí)到。在編碼代碼過程中,CodeWhisperer 還會(huì)自動(dòng)為我們的代碼提供注釋參考,讓我們將更多精力投入到業(yè)務(wù)邏輯中。

將 CodeWhisperer ?用起來(lái)吧,幾分鐘之后,你就會(huì)深刻的感受到編碼效率的提升!

原創(chuàng)文章,作者:陳晨,如若轉(zhuǎn)載,請(qǐng)注明出處:http://2079x.cn/article/588237.html

陳晨陳晨管理團(tuán)隊(duì)

相關(guān)推薦

發(fā)表回復(fù)

登錄后才能評(píng)論