package main
import (
"fmt"
"net/http"
"os"
"strconv"
)
//爬取网页内容
func HttpGet(url string)(result string ,err error){
resp , err1 :=http.Get(url)
if err1 !=nil{
err = err1
return
}
defer resp.Body.Close()
//读取网页body内容
buf := make([]byte, 1024*4 )
for{
n, err := resp.Body.Read(buf)
//读取结束,或者出问题
if n == 0 {
fmt.Println("resp.Body.Read err = ",err)
break
}
result += string(buf[:n])
}
return
}
func DoWork(start,end int){
fmt.Printf("正在爬取 %d 到 %d 的页面",start,end)
//每一页+50 https://tieba.baidu.com/f?kw=%E7%BB%9D%E5%9C%B0%E6%B1%82%E7%94%9F&ie=utf-8&pn=50
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)
fmt.Println("url = ",url)
result, err := HttpGet(url)
if err != nil{
fmt.Println("HttpGet err = ",err)
continue
}
//把内容写入到文件
fileName := strconv.Itoa(i) + ".html"
f, err1 := os.Create(fileName)
if err1 != nil{
fmt.Println("os Create err1 = ",err1)
continue
}
f.WriteString(result)
f.Close()
}
}
func main() {
var start,end int
fmt.Printf("请输入起始页:")
fmt.Scan(&start)
fmt.Printf("请输入终止页:")
fmt.Scan(&end)
DoWork(start,end)
}