不用多说,上代码:go爬虫
解析:
// Spider.go
package main
import (
"Spider/random"
"bufio"
"fmt"
"io/ioutil"
"net/http"
"os"
)
var code string
func read_website() {
var website string
fmt.Scanf("%s", &website)
resp, err := http.Get(website)
if err != nil {
fmt.Println("", err)
return
}
body, err := ioutil.ReadAll(resp.Body)
if err != nil {
fmt.Println("抱歉,读取时出了一点小错误!", err)
return
}
code = string(body)
}
func save_code() {
random.Randint()
filePath := "code/" + random.Number + ".html"
file, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
fmt.Println("抱歉,保存时出现了一些小错误", err)
}
defer file.Close()
write := bufio.NewWriter(file)
write.WriteString(code)
write.Flush()
}
func main() {
read_website()
save_code()
}
read_website()函数是用Scanf让用户输入要爬取的网站,接着把代码储存在变量code中。save_code()函数将变量code(网站源代码)储存在一个html文件中,之后便可在文件夹code中找到该文件,双击运行将发现效果和网站是一样的!Spider/random包是自定义包,用于生成保存的文件的文件名,具体代码见github项目(上面的链接)。