goquery是一个使用go语言写成的HTML解析库,可以让你像jQuery那样的方式来操作DOM文档,使用起来非常的简便。

闲话少说,直接上代码:

package main

import (
    "gopkg.in/mgo.v2"
    "github.com/PuerkitoBio/goquery"
    "log"
    "gopkg.in/mgo.v2/bson"
)

type Article struct {
    Title      string
    Decription string
    Image      string
    Author     string
    Time       string
}

func main() {
    getArticle()
}

func getArticle() {

    //连接MongoDB数据库
    session, err := mgo.Dial("")
    if err != nil {
        panic(err)
    }
    defer session.Close()

    session.SetMode(mgo.Monotonic, true)
    c := session.DB("test").C("article")

    //使用goquery开始抓取
    doc, err := goquery.NewDocument("http://weixin.sogou.com/")
    if err != nil {
        log.Fatal(err)
    }

    //编辑文章节点
    doc.Find(".news-list li").Each(func(i int, contentSelection *goquery.Selection) {

        //文章标题
        title := contentSelection.Find(".txt-box h3 a").Text()
        decription := contentSelection.Find(".txt-box .txt-info").Text()
        image, _ := contentSelection.Find(".img-box img").Attr("src")
        author := contentSelection.Find(".txt-box .account").Text()
        time, _ := contentSelection.Find(".txt-box .s-p").Attr("t")

        result := Article{}

        //是否已经保存过该文章
        err = c.Find(bson.M{"title": title}).One(&result)

        if err != nil {
            log.Println("第", i+1, "篇文章:", title)
            //保存至数据库
            err = c.Insert(&Article{title, decription, image, author, time})
            if err != nil {
                panic(err)
            }
        }
        log.Println(result)
    })
}

MongoDB查看爬取到的文章:

{
        "_id" : ObjectId("5b7c360ec6c321a4c48cb7e2"),
        "title" : "37万元的“鸽子蛋”在家不翼而飞!杭州女子问遍保姆、钢琴老师…… 最后它出现在这里",
        "decription" : "8月18日,刚刚过完七夕节的杭州萧山温女士,就遭遇了“当头一棒”。她那枚象征爱情的钻戒,不见了。这可是定制款的钻戒,一枚大大的“鸽子蛋”,戒指上面还刻有温女士丈夫李先生的名字,是两人结婚十周年的时候...",
        "image" : "//img03.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FG8vkERUJibks36GqXqotGT1HwpjibkXXC5aMdk34KZQRmyINeTkzre57KCia04V6gkaEGtkUU11dSib3pfn4YNd4GQ%2F0%3Fwx_fmt%3Djpeg",
        "author" : "钱江晚报",
        "time" : "1534859218"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb7e5"),
        "title" : "一家医院同科室16名护士集体怀孕!原因成谜",
        "decription" : "美国亚利桑那州梅萨一家医院发生了一件怪事,这家医院有16名护士竟然集体怀孕,且她们的预产期都是在今年的10月份到明年的1月份之间,更离谱的是,她们都是来自同一个科室的。这个“神奇”的事情还被刷上了热搜...",
        "image" : "//img04.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FfPSa4zeEwhAe8LoaicdibxXJv79K46vW4NrS26Fw1CxZHTcdgCibMPC0LOcNibQogBIY6b7oZ7ALLUoQ8vgwDblj9Q%2F0%3Fwx_fmt%3Djpeg",
        "author" : "扬子晚报",
        "time" : "1534858492"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb7e8"),
        "title" : "“谁规定一定要按号入座?”,理直气壮抢高铁座的座霸、醒醒吧!",
        "decription" : "今天上午,一段“G334列车上男乘客霸占靠窗座位不肯让”的视频火了。一位女乘客的座位被占,她要求这位男乘客回自己的座位坐,这位男乘客却趾高气扬地说:“谁规定一定要按号入座?要么你自己站着,要 么去坐我那...",
        "image" : "//img04.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fx6iaHWKibUzk0UhqaGORKQ5nhKvibORCGfLMPeN0Ltcx7NvafPmopuo7Ylf1TI4Dg3T6bicXTZnw1YSWJRP8XXSrQg%2F0%3Fwx_fmt%3Djpeg",
        "author" : "新浪新闻",
        "time" : "1534858228"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb7eb"),
        "title" : "孙杨违规不对,但指责他“辱没国家荣誉”也是上纲上线",
        "decription" : "孙杨是违规了没错,但侵也是侵了安踏的权,这和“个人利益凌驾于国家利益之上”还有很长的距离。全文1433字,阅读约需3分钟▲2018雅加达亚运会 泳池中的孙杨。图:视觉中国。孙杨因为他的领奖服,闹出 了一场风波...",
        "image" : "//img01.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fp6Wl2LDMQlFjUotMTBZGOXUZnMzsv13UibaN1ibPcGc9jhyiatgFbx95Sicm0ATz8qpwdibfjOXZcN4hO4uqgibyw0rw%2F0%3Fwx_fmt%3Djpeg",
        "author" : "新京报",
        "time" : "1534858187"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb7ee"),
        "title" : "被继母虐待的鹏鹏还没“醒”来,生母即将生产,如今他身边只有护工陪伴",
        "decription" : "“我臭臭,起来吃火龙果了。”护工张霞怀抱着被继母虐待成植物人的鹏鹏,一边喂火龙果酸奶一边轻轻唤道。 被继母虐待捡回一条命如今成植物人       2017年3月29日,渭南市临渭区一名遍体鳞伤的男童鹏鹏,被送进...",
        "image" : "//img01.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FJyco923vDiajiblRbXaHWe0urCicZOjjibpAic132KX4fuK5SVHu4vj6sYgVEmEY0QGNztpibsEjRTPRBdNiabejnYrgQ%2F0%3Fwx_fmt%3Djpeg",
        "author" : "华商报",
        "time" : "1534857937"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb7f1"),
        "title" : "30亿条用户信息被盗!这个“史上最大规模数据窃取案”破了",
        "decription" : "2017年,绍兴越城警方破获一起利用人工智能技术获取公民个人信息的案件,图为犯罪团伙作案工具。(图片来源:北京青年报)近日,记者从浙江绍兴越城区警方了解到,公安机关成功侦破一起特大规模的数据 窃取案,本...",
        "image" : "//img03.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FO9F3NTo58yr4IXtTGUhO2DqInk9dWMiad9r2nfezYGHjBkC8iaETSKQT1qZGOSbtjvp9oelKGib3DS44zzhsWIzwQ%2F0%3Fwx_fmt%3Djpeg",
        "author" : "新华网",
        "time" : "1534857333"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb7f4"),
        "title" : "网友狂赞孙杨最后一棒,而他的领奖服却引来一场风波",
        "decription" : "今天,印尼雅加达亚运会进行到第三个比赛日,中国斩获17金12银9铜,居奖牌榜首位!其中,我国游泳健儿的表现格外亮眼。首个决赛日,中国游泳队在全部7个项目的决赛中,拿到了4金2银4铜的好成绩。第二个比赛日,...",
        "image" : "//img04.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FIqicDAGdXNibtrnRvpQKyOHwJCQOliaMuLJmzEzAf2V2S25CPtrMpWMFFtEiaLKyvIWkQ9nTq0zRd4Ng8datvXjjAw%2F0%3Fwx_fmt%3Djpeg",
        "author" : "中国日报双语新闻",
        "time" : "1534857236"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb7f7"),
        "title" : "声音雕刻大师乔榛:用生命塑造声音之魂",
        "decription" : "  《魂断蓝桥》《安娜·卡列尼娜》《战争与和平》《廊桥遗梦》《真实的谎言》……在译制片的黄金年代里,有一个人的声音曾伴随这些电影走进千家万户,镌刻在国人美好的记忆中。他就是语言表演艺术家 、导演乔榛...",
        "image" : "//img01.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2F5r2fdOVlScoDPH6eo5Yreq1tagslkibQXFuiaicFgddk1aZw6gdPFjTicU8WLkUhf2QZgicmnMEicPvktkk6aF7LNqzA%2F0%3Fwx_fmt%3Djpeg",
        "author" : "中央纪委国家监委网站",
        "time" : "1534856772"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb7fa"),
        "title" : "华商快讯:西安莲湖官方通报扔烟头拍照事件调查结果(附视频)",
        "decription" : "今日(周二)上午,西安莲湖发布调查报告:经查看监控录像,烟头来源系两名检查人员沿途捡拾收集,拍照系留痕佐证。两名环卫工被罚款系二人未在规定的早7点前完成普扫任务造成漏扫,垃圾和落叶没清理,被环卫公...",
        "image" : "//img03.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FJyco923vDiajiblRbXaHWe0urCicZOjjibpAgepU6Rw9ea1QSEibTGOA3rMgIxhA1cOPdDKCXwMBvNibjVFXAsPtNJUA%2F0%3Fwx_fmt%3Djpeg",
        "author" : "华商报",
        "time" : "1534854805"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb7fd"),
        "title" : "江西上高枪击案致2死续:又发现2人被疑犯况玉林杀害,嫌犯仍在逃",
        "decription" : "今日(21日)上午10时许,记者拨打上高县公安局悬赏通告公布的举报电话,对方称,除了两起枪击杀人案件,还有2人被况玉林杀害。全文783字,阅读约需1.5分钟▲江西宜春连续发生两起持枪杀人案 嫌犯仍在逃 。 新京报...",
        "image" : "//img02.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fp6Wl2LDMQlFjUotMTBZGOXUZnMzsv13Un3syvTGiaPJhLMEeAoK7svRGQLOvgvvLkmO9S3tbSUuSIZznZhDMrgg%2F0%3Fwx_fmt%3Djpeg",
        "author" : "新京报",
        "time" : "1534853730"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb800"),
        "title" : "学校没了,也许他们只能回家当留守儿童",
        "decription" : "拥有20年办学历史、曾经北京市最大的打工子弟学校、石景山区黄庄学校,由于“用地纠纷、办学许可证无法换新等问题”,终于不得已走到了关停这一步。曾是北京最大打工子弟学校如今校门前被焊上铁门北京 市石景山区...",
        "image" : "//img03.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fx6iaHWKibUzk2EZYo2Qzibbe1c3nhW4W8l13ibibf1Ukc1FiaUTwPf1XZad0McMYVMeibcppW11H8kmibpI6P7YIdB7ibibQ%2F0%3Fwx_fmt%3Djpeg",
        "author" : "新浪新闻",
        "time" : "1534843182"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb803"),
        "title" : "关于宣传思想工作,习近平总书记这样说",
        "decription" : "  党的十八大以来,以习近平同志为核心的党中央高度重视宣传思想工作,习近平总书记在全国宣传思想工作会议、文艺工作座谈会、党的新闻舆论工作座谈会等会议上多次发表重要讲话,形成了一以贯之的思 想脉络、构...",
        "image" : "//img04.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2F5r2fdOVlScoDPH6eo5Yreq1tagslkibQXcno8OSCPJx9CibQvjLEJP4GibYnt0Q9kp5bXiaiaJBFzVmeiacYjjaH6aMw%2F0%3Fwx_fmt%3Djpeg",
        "author" : "中央纪委国家监委网站",
        "time" : "1534841909"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb806"),
        "title" : "21岁女孩“自杀式”减肥,瘦到50斤成植物人!昏睡40天醒来,三年记忆消失了",
        "decription" : "长久昏迷,突然苏醒,忘记了很多从前的记忆。这种在影视剧才能见到的“桥段”就发生在哈医大一院病房里。患者是位女孩,21岁的她,身高1.67米,体重只有50斤。入院之前的小倩入院前,她曾“自杀式”减 肥,每天只...",
        "image" : "//img01.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FG8vkERUJibks36GqXqotGT1HwpjibkXXC57RwcRYiaLWgicfb8Jx2pYxKLib9ogzTZS7IgkHMsPArcPkLdVfiafjO3bg%2F0%3Fwx_fmt%3Djpeg",
        "author" : "钱江晚报",
        "time" : "1534841719"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb809"),
        "title" : "刚刚,中国与萨尔瓦多建立外交关系!",
        "decription" : "国务委员兼外交部长王毅8月21日在北京与萨尔瓦多外长卡斯塔内达举行会谈。会谈后,两国外长签署了《中华人民共和国和萨尔瓦多共和国关于建立外交关系的联合公报》。萨尔瓦多位于中美洲北部。北邻洪都拉斯,南濒...",
        "image" : "//img04.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FO9F3NTo58yr4IXtTGUhO2DqInk9dWMiadZVibN9MIn06ibltKjnTW4ibM4DBpILGR0n4xW9HibR0jFHXibgYj4VxTDTA%2F0%3Fwx_fmt%3Djpeg",
        "author" : "新华网",
        "time" : "1534835383"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb80c"),
        "title" : "1米67才50斤!21岁女孩“自杀式减肥”,脑组织如60岁老人",
        "decription" : "长久昏迷,突然苏醒,忘记了很多从前的记忆。这种在影视剧才能见到的“桥段”就发生在哈医大一院病房里。患者是位女孩,21岁的她,身高1.67米,体重只有50斤。入院前,她曾“自杀式”减肥,每天只摄入 正常人需要...",
        "image" : "//img04.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FfPSa4zeEwhAe8LoaicdibxXJv79K46vW4N6DI3N1ZsV8j8RcOzsdEIgmiawibSe8zSSeLPVh6Ld4g1MOwbp2PAFrUQ%2F0%3Fwx_fmt%3Djpeg",
        "author" : "扬子晚报",
        "time" : "1534832961"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb80f"),
        "title" : "天天被骂“假新闻”,美国媒体爆发了!350家媒体集体“宣战”特朗普丨外媒说",
        "decription" : "近日,美国媒体抱团“宣战”特朗普了!自上台以来,美国总统特朗普多次公开抨击美国媒体炮制假新闻,是“美国人民的公敌”。“Fake News”的指责声不绝于耳。日前,美国媒体终于忍无可忍,《波士顿环球报》吹响...",
        "image" : "//img03.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FIqicDAGdXNibvYxF5vJVRNE23oqTZXQGXMTgQmhtfc1XZoQj9z1bpZuNH4uKSsOcibsngJAm2TWK1LHIyD2LtqsAw%2F0%3Fwx_fmt%3Djpeg",
        "author" : "中国日报双语新闻",
        "time" : "1534831983"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb812"),
        "title" : "海外抗癌仿制药黑市调查丨代购中的假药风险",
        "decription" : "“怎么知道药是真还是假?我会问别人用了效果怎么样,或者大家用谁的我买谁的。”肺癌患者顾前芬对新京报记者说,对于大部分用印度仿制药的患者来说,药品渠道确实不透明,他们也无法保证药效和真伪,只能把自己...",
        "image" : "//img03.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2Fp6Wl2LDMQlG8IZdMTLz0cibliabOuM1r8StyOoKOZ3Ll8SMTlicTmTcwbm0fynSoLZibhbV55SegVJQxzJ9zYgN62w%2F0%3Fwx_fmt%3Djpeg",
        "author" : "新京报",
        "time" : "1534827092"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb815"),
        "title" : "一条鲫鱼正在刷屏:它把4名浙江高中生送进清华,背后的秘密是……",
        "decription" : "昨天下午开始,记者被一条鲫鱼刷屏。据说,全国有50名高中生因为成功解剖鲫鱼,拿到保送资格,提前敲开清华等一流名校的资格。其中,包括浙江的4位高中生。原来,他们参加的是第27届全国中学生生物学竞赛。比赛...",
        "image" : "//img01.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FG8vkERUJibksZOfKqHjRcnkBU5ibv4PJ5ReGLWn86Pmpkf7g1rru3NwoF8xr8etz2icjwIu3Qz9krsqViaKfF2BeBQ%2F0%3Fwx_fmt%3Djpeg",
        "author" : "钱江晚报",
        "time" : "1534822495"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb818"),
        "title" : "超过25000个!这些App被苹果大规模下架",
        "decription" : "导读日前,苹果公司发布消息,将应用商店中超过25000款涉及假彩票、赌博等非法App进行了大规模下架。 近日,苹果公司发表的声明称:我们已经移除了很多试图在我们的 App Store上发布违法博彩App的开发 者,并下架...",
        "image" : "//img03.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2FO9F3NTo58yrADhtaL76ibdmibyVUuxsXuEFPGamib9kL4kx7nEClgiaKc6wmdH049AEErTv3F2g7wq1R0CJibx0Jpfg%2F0%3Fwx_fmt%3Djpeg",
        "author" : "新华网",
        "time" : "1534822172"
}
{
        "_id" : ObjectId("5b7c360fc6c321a4c48cb81b"),
        "title" : "朝着全球覆盖稳步迈进!中国北斗“亮晶晶”丨新时代·新本领",
        "decription" : "▲5分钟带你了解北斗卫星导航系统  中国北斗实现全球导航的梦想,正加速到来。7月29日9时48分,我国成功发射第33、34颗北斗导航卫星。  今年7月29日,我国在西昌卫星发射中心用长征三号乙运载火箭 (及远征一...",
        "image" : "//img03.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2F5r2fdOVlScorNyUNBjyGByV2xP46wdIpdLAFqswNPjqCy24yCZIdjKsKE08FeqIJeABumBy0JUdlgn0mbweD1Q%2F0%3Fwx_fmt%3Djpeg",
        "author" : "中央纪委国家监委网站",
        "time" : "1534821172"
}