码迷,mamicode.com
首页 > 其他好文 > 详细

Go爬虫学习-----goquery

时间:2020-04-19 18:16:57      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:pre   one   处理   desc   class   lock   爬取   err   商学院   

菜鸟一个,以前没学过爬虫,今天恰好在浏览链家,想对长沙的价格有一个了解,所以用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, "\n", "", -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\n", 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 页的数据:\n", i)
44         url = url + strconv.Itoa(i)
45         ExampleScrape(url)
46         fmt.Printf("\n\n")
47     }
48 
49 }
View Code

运行结果如下(我大长沙的房价真是良心啊):

正在处理第 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

标签:pre   one   处理   desc   class   lock   爬取   err   商学院   

原文地址:https://www.cnblogs.com/LydiammZuo/p/12732312.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!