『原创』

Golang简单爬虫

七年。 2018-12-28 16:56:00 56 技术支持

什么是爬虫?

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫


本文是一个简单的图片爬虫示例

这里用“我要个性”网中某头像链接为例

https://www.woyaogexing.com/touxiang/z/labixiaoxin/


首先对网站的源码进行简单的分析


从上面的源代码中,我们可以找到一个class名为lazy的img标签。 

这个便是这次简单爬虫需要爬取的对象。

而我们需要做的就是通过lazy名获取img标签的src值。


所以:

第一步、分析代码结构

    1、首先需要一个获取src路径的方法(GetJokes)。用于获取图片的src地址和随机生成四段文件名,最后传值给下载器。

    2、然后需要一个下载器(downloader)。用于获取上一个方法传递过来的地址和名称,最后下载保存到指定文件夹中。

    3、在main中调用GetJokes。

第二步、开始代码编写

//获取图片地址并生成随机文件名

func GetJokes(){ httpUrl := "https:" src := "https://www.woyaogexing.com/touxiang/z/labixiaoxin/" doc, err := goquery.NewDocument(src) if err != nil{ log.Fatal(err) } doc.Find(".lazy").Each(func(i int, s *goquery.Selection){ img_url, _ := s.Attr("src") url := httpUrl + img_url fmt.Println(url) //随机生成四段文件名 uid, _ := uuid.NewV4() file_name := uid.String() fmt.Println(file_name) //传递参数 downloader(url,file_name) }) }
//下载器   (下载地址,图片名字)
func downloader(img string,name string){
    resp, _ := http.Get(img)
    body, _ := ioutil.ReadAll(resp.Body)
    //将图片下载到指定文件夹
    out, _ := os.Create(fmt.Sprintf("./img/"+name+".jpg"))
    io.Copy(out, bytes.NewReader(body))
}
//调用GetJokes
func main(){
    GetJokes()
}


至于高级的爬虫,等玩够了再进行研究。

邮箱: *必填。你的邮箱不会被公开
评论(0

更新时间: