io/ioutil包的利用
在此之前先介绍一下本次爬虫要用到的golang包:io/ioutil。基于golang讲解(go语言)标准库分析之io.ioutil([https://www.widuu.com/archives/12/906.html ])
- 该包中有许多接口io包中定义了非常多的interface只要实现了接口中的方法那么io包中的导出方法就可以传入我们自定义的对象然后进行处理像什么文件数据,网络数据,数据库数据都可以统一操作接口。
爬虫的简单实现
1.首先是将爬取内容显示在终端的写法:
package main
import (
"net/http"
"fmt"
"io/ioutil"
)
func main(){
content,err := http.Get("https://dujia.qunar.com/?ex_track=auto_52b3f121")
if err != nil {
panic(err)
}
if content.StatusCode != http.StatusOK{
fmt.Println("error : talking is cheap ,show me the code!",content.StatusCode)
return
}
details,err := ioutil.ReadAll(content.Body)
if err != nil{
panic(err)
}
fmt.Printf("%s\n",details)
运行后在终端显示结果如下:
2.如果想在指定文件中输出爬取结果,只需要在以上代码的基础之上添加文件的输入输出流的操作就可以了。如下:
package main
import (
"net/http"
"fmt"
"io/ioutil"
"log"
)
func main(){
content,err := http.Get("https://dujia.qunar.com/?ex_track=auto_52b3f121")
if err != nil {
panic(err)
}
if content.StatusCode != http.StatusOK{
fmt.Println("error : talking is cheap ,show me the code!",content.StatusCode)
return
}
details,err := ioutil.ReadAll(content.Body)
if err != nil{
panic(err)
}
// fmt.Printf("%s\n",details)
//在当前项目工程目录下自行创建一个test.txt的文件用来存放爬取的内容
mycontent := ioutil.WriteFile("test.txt",[]byte(details),0666)
if mycontent != nil {
log.Fatal(mycontent)
}
}
运行结果如下:
**上爬取只是简单的爬取,我们还可以利用golang自带的goquery包直接来获取爬取内容,在这就不赘述了。
〜( ̄△ ̄〜) (〜 ̄△ ̄)〜**