生活随笔
收集整理的這篇文章主要介紹了
用go语言完成爬虫
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
除了python是一個(gè)爬蟲的好工具,go也可以完成同樣的操作
如下,爬取的百度貼吧的代碼:
package main
import ("fmt""io""net/http""os""strconv"
)func main() {var start
, end
intfmt
.Print("請輸入爬取的起始頁:")fmt
.Scan(&start
)fmt
.Println("請輸入終止頁")fmt
.Scan(&end
)working(start
, end
)
}func working(start
int, end
int) {fmt
.Printf("正在爬取第%d頁到%d頁", start
, end
)for i
:= start
; i
<= end
; i
++ {url
:= "https://tieba.baidu.com/f?kw=%E7%BB%9D%E5%9C%B0%E6%B1%82%E7%94%9F&ie=utf-8&pn=" + strconv
.Itoa((i
-1)*50)result
, err
:= HttpGet(url
)if err
!= nil {fmt
.Println("httpGet err", err
)continue}f
, err
:= os
.Create("第" + strconv
.Itoa(i
) + "頁" + ".html")if err
!= nil {fmt
.Println("Create err", err
)continue}f
.WriteString(result
)f
.Close() }}func HttpGet(url
string) (result
string, err
error) {resp
, err1
:= http
.Get(url
)if err1
!= nil {err
= err1
return}defer resp
.Body
.Close()buf
:= make([]byte, 4096)for {n
, err2
:= resp
.Body
.Read(buf
)if n
== 0 {fmt
.Println("讀取網(wǎng)頁完成")break}if err2
!= nil && err2
!= io
.EOF
{err
= err2
return}result
+= string(buf
[:n
])}return}
可以看見實(shí)現(xiàn)完后,項(xiàng)目根目錄下有了html文件:
總結(jié)
以上是生活随笔為你收集整理的用go语言完成爬虫的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。