2021年12月19日 星期日

【Let's Go 爬】也用 Go 爬爬看~~~使用goquery爬取udn新聞網內容

 之前(一年前了~~我咧)用python的BS4練習了簡單的udn新聞網頁擷取、分析

這次趁著玩GoLang的機會,也想試試看如何用Go來完成同樣的工作。畢竟Go就是為網路而生啊~對於網路應用方面應該是更加得心應手吧!呵~~自己不負責任的胡亂猜想

好了~~不廢話了!

這次呢~~用了goquery這個模組來進行網頁內容的分析,功能就類似python中BS4模組的功能。

正好可以順道介紹一下,在Go裡面安裝模組的方式:

go get 模組名稱

=====================================================

首先:這次要安裝的goquery安裝方式如下:在終端機(命令提示字元)下輸入

go get github.com/PuerkitoBio/goquery


基本上~~goquery的使用,分成以下幾個步驟:

1.取得網頁內容: func NewDocumentFromReader(r io.Reader) (*Document, error)

2.設定查詢條件:func (s *Selection) Find(selector string) *Selection

3.獲取查詢結果:func (s *Selection) Find(selector string) *Selection

4.提取所需的網頁元素:func (s *Selection) Attr(attrName string) (val string, exists bool)

看完上述整理~~只有一個感覺~嗯...程式人的世界真是枯燥且乏味啊!(哩是滴供啥毀啦🤣)😂

好了,還是直接上程式碼🐎............


跟python BS4一樣~大概十幾二十行就可以完工(中間省略了些查核及錯誤處理)

執行程式:go run go檔名

對應goquery的使用階段~~上述程式碼的對應整理如下:

1.取得網頁內容: 11~14行

2.設定查詢條件 + 3.獲取查詢結果:16行

4.提取所需的網頁元素:17~21行

至於查詢條件以及所需網頁元素的設定方式,有需要的朋友請參考之前python那篇的說明!

好~~就先這樣囉!

後續有精神~在繼續用Go對應玩玩之前python的一些操作,比較看看!

沒有留言:

張貼留言