Go爬虫学习-----goquery
Posted lydiammzuo
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go爬虫学习-----goquery相关的知识,希望对你有一定的参考价值。
菜鸟一个,以前没学过爬虫,今天恰好在浏览链家,想对长沙的价格有一个了解,所以用go的一个包goquery学习了一下怎么爬虫。
goquery包的基本使用可以参考链接:https://www.cnblogs.com/diegodu/p/5761961.html
对于爬虫,总体思路是:
1、明确URL(请求的地址,明确爬什么)
2、发送请求,获取响应数据
3、保存响应数据、提取有用信息
4、处理数据(存储、使用)
下面是我爬取网页:https://cs.fang.lianjia.com/loupan/nht1nhs1pg1/ 的代码,记录一下:
1 package main 2 3 import ( 4 "fmt" 5 "log" 6 "strconv" 7 "strings" 8 9 "github.com/PuerkitoBio/goquery" 10 ) 11 12 func ExampleScrape(url string) { 13 doc, err := goquery.NewDocument(url) 14 if err != nil { 15 log.Fatal(err) 16 } 17 18 items := doc.Find("div.resblock-desc-wrapper") 19 items.Each(func(_ int, sel *goquery.Selection) { 20 /* 获取楼盘名字 */ 21 name := sel.Find("div.resblock-name").Find("a.name").Text() 22 23 /* 获取位置信息 */ 24 location := sel.Find("div.resblock-location").Find("span").Text() //位置信息 25 26 /* 获取面积 */ 27 area := sel.Find("div.resblock-area").Text() 28 area = strings.Replace(area, " ", "", -1) // 去除空格 29 area = strings.Replace(area, " ", "", -1) // 去除换行符 30 31 /* 获取单价 */ 32 price := sel.Find("div.resblock-price").Find("div.main-price").Find("span.number").Text() 33 total := sel.Find("div.resblock-price").Find("div.second").Text() 34 35 fmt.Printf("楼盘名字: %s, 位置信息:%s, %s, 单价:%s元/平, %s ", name, location, area, price, total) 36 }) 37 } 38 39 func main() { 40 maxPageNum := 10 41 url := "https://cs.fang.lianjia.com/loupan/nht1nhs1pg" 42 for i := 1; i <= maxPageNum; i++ { 43 fmt.Printf("正在处理第 %d 页的数据: ", i) 44 url = url + strconv.Itoa(i) 45 ExampleScrape(url) 46 fmt.Printf(" ") 47 } 48 49 }
运行结果如下(我大长沙的房价真是良心啊):
正在处理第 1 页的数据:
楼盘名字: 中海熙湾, 位置信息:岳麓梅溪湖南岸, 建面114-200㎡, 单价:18000元/平, 总价205.2万/套
楼盘名字: 新城和樾, 位置信息:开福金霞, 建面115-144㎡, 单价:9700元/平, 总价134万/套
楼盘名字: 美的翰城, 位置信息:望城望城区, 建面88-127㎡, 单价:6200元/平, 总价72万/套
楼盘名字: 蓝湾国际广场, 位置信息:天心书院路, , 单价:15000元/平,
楼盘名字: 水墨林溪, 位置信息:天心新开铺, 建面75-116㎡, 单价:9000元/平, 总价105.2万/套
楼盘名字: 五一钻界海上银座, 位置信息:芙蓉松桂园, 建面32-70㎡, 单价:15000元/平, 总价48.5万/套
楼盘名字: 明昇壹城, 位置信息:雨花武广新城, 建面38-189㎡, 单价:13880元/平, 总价53.2万/套
楼盘名字: 金轮星光名座, 位置信息:雨花武广新城, 建面36-91㎡, 单价:9078元/平, 总价55.5万/套
楼盘名字: 望兴西西里, 位置信息:岳麓商学院, , 单价:12000元/平,
楼盘名字: 晟通牡丹舸, 位置信息:岳麓梅溪湖北岸, 建面231-248㎡, 单价:18000元/平, 总价415.8万/套
正在处理第 2 页的数据:
楼盘名字: 长沙院子, 位置信息:长沙县长沙县, 建面179㎡, 单价:8000元/平, 总价139.6万/套
楼盘名字: 高铁吾悦广场, 位置信息:雨花武广新城, 建面140㎡, 单价:10600元/平, 总价145万/套
楼盘名字: 和泓桃李春风, 位置信息:长沙县星沙其他, 建面88-127㎡, 单价:8500元/平, 总价71.2万/套
楼盘名字: 恒大半山悦府, 位置信息:岳麓岳麓其他, 建面95-136㎡, 单价:8200元/平, 总价77.9万/套
楼盘名字: 敏捷珑玥府, 位置信息:长沙县长沙县, 建面96-129㎡, 单价:7600元/平, 总价74.2万/套
楼盘名字: 南璟滨江书苑, 位置信息:望城望城区, 建面94-139㎡, 单价:5900元/平, 总价55.9万/套
楼盘名字: 润和谷山郡, 位置信息:望城望城区, 建面44-178㎡, 单价:8000元/平, 总价35.6万/套
楼盘名字: 福晟钱隆公馆, 位置信息:天心暮云, 建面121-142㎡, 单价:6700元/平, 总价81.07万/套
楼盘名字: 湾田望江府, 位置信息:望城望城区, 建面105-137㎡, 单价:6000元/平, 总价62万/套
楼盘名字: 长房雍景湾, 位置信息:开福福元西路, 建面120-143㎡, 单价:12300元/平, 总价147.6万/套
正在处理第 3 页的数据:
楼盘名字: 中海熙湾, 位置信息:岳麓梅溪湖南岸, 建面114-200㎡, 单价:18000元/平, 总价205.2万/套
楼盘名字: 新城和樾, 位置信息:开福金霞, 建面115-144㎡, 单价:9700元/平, 总价134万/套
楼盘名字: 美的翰城, 位置信息:望城望城区, 建面88-127㎡, 单价:6200元/平, 总价72万/套
楼盘名字: 蓝湾国际广场, 位置信息:天心书院路, , 单价:15000元/平,
楼盘名字: 水墨林溪, 位置信息:天心新开铺, 建面75-116㎡, 单价:9000元/平, 总价105.2万/套
楼盘名字: 五一钻界海上银座, 位置信息:芙蓉松桂园, 建面32-70㎡, 单价:15000元/平, 总价48.5万/套
楼盘名字: 明昇壹城, 位置信息:雨花武广新城, 建面38-189㎡, 单价:13880元/平, 总价53.2万/套
楼盘名字: 金轮星光名座, 位置信息:雨花武广新城, 建面36-91㎡, 单价:9078元/平, 总价55.5万/套
楼盘名字: 望兴西西里, 位置信息:岳麓商学院, , 单价:12000元/平,
楼盘名字: 晟通牡丹舸, 位置信息:岳麓梅溪湖北岸, 建面231-248㎡, 单价:18000元/平, 总价415.8万/套
正在处理第 4 页的数据:
楼盘名字: 中海熙湾, 位置信息:岳麓梅溪湖南岸, 建面114-200㎡, 单价:18000元/平, 总价205.2万/套
楼盘名字: 新城和樾, 位置信息:开福金霞, 建面115-144㎡, 单价:9700元/平, 总价134万/套
楼盘名字: 美的翰城, 位置信息:望城望城区, 建面88-127㎡, 单价:6200元/平, 总价72万/套
楼盘名字: 蓝湾国际广场, 位置信息:天心书院路, , 单价:15000元/平,
楼盘名字: 水墨林溪, 位置信息:天心新开铺, 建面75-116㎡, 单价:9000元/平, 总价105.2万/套
楼盘名字: 五一钻界海上银座, 位置信息:芙蓉松桂园, 建面32-70㎡, 单价:15000元/平, 总价48.5万/套
楼盘名字: 明昇壹城, 位置信息:雨花武广新城, 建面38-189㎡, 单价:13880元/平, 总价53.2万/套
楼盘名字: 金轮星光名座, 位置信息:雨花武广新城, 建面36-91㎡, 单价:9078元/平, 总价55.5万/套
楼盘名字: 望兴西西里, 位置信息:岳麓商学院, , 单价:12000元/平,
楼盘名字: 晟通牡丹舸, 位置信息:岳麓梅溪湖北岸, 建面231-248㎡, 单价:18000元/平, 总价415.8万/套
正在处理第 5 页的数据:
楼盘名字: 中海熙湾, 位置信息:岳麓梅溪湖南岸, 建面114-200㎡, 单价:18000元/平, 总价205.2万/套
楼盘名字: 新城和樾, 位置信息:开福金霞, 建面115-144㎡, 单价:9700元/平, 总价134万/套
楼盘名字: 美的翰城, 位置信息:望城望城区, 建面88-127㎡, 单价:6200元/平, 总价72万/套
楼盘名字: 蓝湾国际广场, 位置信息:天心书院路, , 单价:15000元/平,
楼盘名字: 水墨林溪, 位置信息:天心新开铺, 建面75-116㎡, 单价:9000元/平, 总价105.2万/套
楼盘名字: 五一钻界海上银座, 位置信息:芙蓉松桂园, 建面32-70㎡, 单价:15000元/平, 总价48.5万/套
楼盘名字: 明昇壹城, 位置信息:雨花武广新城, 建面38-189㎡, 单价:13880元/平, 总价53.2万/套
楼盘名字: 金轮星光名座, 位置信息:雨花武广新城, 建面36-91㎡, 单价:9078元/平, 总价55.5万/套
楼盘名字: 望兴西西里, 位置信息:岳麓商学院, , 单价:12000元/平,
楼盘名字: 晟通牡丹舸, 位置信息:岳麓梅溪湖北岸, 建面231-248㎡, 单价:18000元/平, 总价415.8万/套
正在处理第 6 页的数据:
楼盘名字: 中海熙湾, 位置信息:岳麓梅溪湖南岸, 建面114-200㎡, 单价:18000元/平, 总价205.2万/套
楼盘名字: 新城和樾, 位置信息:开福金霞, 建面115-144㎡, 单价:9700元/平, 总价134万/套
楼盘名字: 美的翰城, 位置信息:望城望城区, 建面88-127㎡, 单价:6200元/平, 总价72万/套
楼盘名字: 蓝湾国际广场, 位置信息:天心书院路, , 单价:15000元/平,
楼盘名字: 水墨林溪, 位置信息:天心新开铺, 建面75-116㎡, 单价:9000元/平, 总价105.2万/套
楼盘名字: 五一钻界海上银座, 位置信息:芙蓉松桂园, 建面32-70㎡, 单价:15000元/平, 总价48.5万/套
楼盘名字: 明昇壹城, 位置信息:雨花武广新城, 建面38-189㎡, 单价:13880元/平, 总价53.2万/套
楼盘名字: 金轮星光名座, 位置信息:雨花武广新城, 建面36-91㎡, 单价:9078元/平, 总价55.5万/套
楼盘名字: 望兴西西里, 位置信息:岳麓商学院, , 单价:12000元/平,
楼盘名字: 晟通牡丹舸, 位置信息:岳麓梅溪湖北岸, 建面231-248㎡, 单价:18000元/平, 总价415.8万/套
正在处理第 7 页的数据:
楼盘名字: 中海熙湾, 位置信息:岳麓梅溪湖南岸, 建面114-200㎡, 单价:18000元/平, 总价205.2万/套
楼盘名字: 新城和樾, 位置信息:开福金霞, 建面115-144㎡, 单价:9700元/平, 总价134万/套
楼盘名字: 美的翰城, 位置信息:望城望城区, 建面88-127㎡, 单价:6200元/平, 总价72万/套
楼盘名字: 蓝湾国际广场, 位置信息:天心书院路, , 单价:15000元/平,
楼盘名字: 水墨林溪, 位置信息:天心新开铺, 建面75-116㎡, 单价:9000元/平, 总价105.2万/套
楼盘名字: 五一钻界海上银座, 位置信息:芙蓉松桂园, 建面32-70㎡, 单价:15000元/平, 总价48.5万/套
楼盘名字: 明昇壹城, 位置信息:雨花武广新城, 建面38-189㎡, 单价:13880元/平, 总价53.2万/套
楼盘名字: 金轮星光名座, 位置信息:雨花武广新城, 建面36-91㎡, 单价:9078元/平, 总价55.5万/套
楼盘名字: 望兴西西里, 位置信息:岳麓商学院, , 单价:12000元/平,
楼盘名字: 晟通牡丹舸, 位置信息:岳麓梅溪湖北岸, 建面231-248㎡, 单价:18000元/平, 总价415.8万/套
正在处理第 8 页的数据:
楼盘名字: 中海熙湾, 位置信息:岳麓梅溪湖南岸, 建面114-200㎡, 单价:18000元/平, 总价205.2万/套
楼盘名字: 新城和樾, 位置信息:开福金霞, 建面115-144㎡, 单价:9700元/平, 总价134万/套
楼盘名字: 美的翰城, 位置信息:望城望城区, 建面88-127㎡, 单价:6200元/平, 总价72万/套
楼盘名字: 蓝湾国际广场, 位置信息:天心书院路, , 单价:15000元/平,
楼盘名字: 水墨林溪, 位置信息:天心新开铺, 建面75-116㎡, 单价:9000元/平, 总价105.2万/套
楼盘名字: 五一钻界海上银座, 位置信息:芙蓉松桂园, 建面32-70㎡, 单价:15000元/平, 总价48.5万/套
楼盘名字: 明昇壹城, 位置信息:雨花武广新城, 建面38-189㎡, 单价:13880元/平, 总价53.2万/套
楼盘名字: 金轮星光名座, 位置信息:雨花武广新城, 建面36-91㎡, 单价:9078元/平, 总价55.5万/套
楼盘名字: 望兴西西里, 位置信息:岳麓商学院, , 单价:12000元/平,
楼盘名字: 晟通牡丹舸, 位置信息:岳麓梅溪湖北岸, 建面231-248㎡, 单价:18000元/平, 总价415.8万/套
正在处理第 9 页的数据:
楼盘名字: 中海熙湾, 位置信息:岳麓梅溪湖南岸, 建面114-200㎡, 单价:18000元/平, 总价205.2万/套
楼盘名字: 新城和樾, 位置信息:开福金霞, 建面115-144㎡, 单价:9700元/平, 总价134万/套
楼盘名字: 美的翰城, 位置信息:望城望城区, 建面88-127㎡, 单价:6200元/平, 总价72万/套
楼盘名字: 蓝湾国际广场, 位置信息:天心书院路, , 单价:15000元/平,
楼盘名字: 水墨林溪, 位置信息:天心新开铺, 建面75-116㎡, 单价:9000元/平, 总价105.2万/套
楼盘名字: 五一钻界海上银座, 位置信息:芙蓉松桂园, 建面32-70㎡, 单价:15000元/平, 总价48.5万/套
楼盘名字: 明昇壹城, 位置信息:雨花武广新城, 建面38-189㎡, 单价:13880元/平, 总价53.2万/套
楼盘名字: 金轮星光名座, 位置信息:雨花武广新城, 建面36-91㎡, 单价:9078元/平, 总价55.5万/套
楼盘名字: 望兴西西里, 位置信息:岳麓商学院, , 单价:12000元/平,
楼盘名字: 晟通牡丹舸, 位置信息:岳麓梅溪湖北岸, 建面231-248㎡, 单价:18000元/平, 总价415.8万/套
正在处理第 10 页的数据:
楼盘名字: 中海熙湾, 位置信息:岳麓梅溪湖南岸, 建面114-200㎡, 单价:18000元/平, 总价205.2万/套
楼盘名字: 新城和樾, 位置信息:开福金霞, 建面115-144㎡, 单价:9700元/平, 总价134万/套
楼盘名字: 美的翰城, 位置信息:望城望城区, 建面88-127㎡, 单价:6200元/平, 总价72万/套
楼盘名字: 蓝湾国际广场, 位置信息:天心书院路, , 单价:15000元/平,
楼盘名字: 水墨林溪, 位置信息:天心新开铺, 建面75-116㎡, 单价:9000元/平, 总价105.2万/套
楼盘名字: 五一钻界海上银座, 位置信息:芙蓉松桂园, 建面32-70㎡, 单价:15000元/平, 总价48.5万/套
楼盘名字: 明昇壹城, 位置信息:雨花武广新城, 建面38-189㎡, 单价:13880元/平, 总价53.2万/套
楼盘名字: 金轮星光名座, 位置信息:雨花武广新城, 建面36-91㎡, 单价:9078元/平, 总价55.5万/套
楼盘名字: 望兴西西里, 位置信息:岳麓商学院, , 单价:12000元/平,
楼盘名字: 晟通牡丹舸, 位置信息:岳麓梅溪湖北岸, 建面231-248㎡, 单价:18000元/平, 总价415.8万/套
以上是关于Go爬虫学习-----goquery的主要内容,如果未能解决你的问题,请参考以下文章
golang goquery selector(选择器) 示例大全