golang的一个简单小爬虫demo学习记录
生活随笔
收集整理的這篇文章主要介紹了
golang的一个简单小爬虫demo学习记录
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
之前學(xué)的是python,但是遇到瓶頸了,所以想先拓寬一下知識面。技術(shù)是學(xué)不完的,在這資本恒流的時代,兩三年就能將一門語言炒到火熱,所以還是要堅守本心,先生存再生活。
1.新建一個項目文件,創(chuàng)建一個main.go文件
2.遇到代碼中import報紅的部分,解決方法如下
(1)打開終端或cmd, 進入到你創(chuàng)建的項目的路徑(例如我創(chuàng)建的項目文件夾是test)
(2)go mod init test(test就是你創(chuàng)建的文件夾的名稱)
(3)go mod tidy
(4)如果還有其他報錯請自行搜索
package mainimport ("fmt""github.com/PuerkitoBio/goquery""log""net/http" ) func main() {authors_url := "https://so.gushiwen.cn/authors/"res, err := http.Get(authors_url) // 請求一個網(wǎng)站if err != nil{ //如果err不是nil,則說明請求發(fā)生了錯誤panic(err)}defer res.Body.Close() // 請求完之后關(guān)閉請求窗口if res.StatusCode != 200{ // 如果狀態(tài)碼不為200,則說明請求網(wǎng)頁失敗log.Fatal("status code error: %d %s", res.StatusCode, res.Status)}// 調(diào)用NewDocumentFromReader傳入上面的io.Reader構(gòu)造一個*goquery.Document對象;document, err := goquery.NewDocumentFromReader(res.Body)if err != nil{fmt.Errorf("document eror", err)}// Find(".sons") 其中.表示classdocument.Find(".sons").Find(".cont").Find("a").Each(func(i int, selection *goquery.Selection) {author := selection.Text()link, _ := selection.Attr("href") //獲取href的值fmt.Printf("%d author=%s\n", i, author)fmt.Printf("%d link=%s\n", i, link)}) }總結(jié)
以上是生活随笔為你收集整理的golang的一个简单小爬虫demo学习记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深度学习分割json_to_data报错
- 下一篇: GIT学习(-)