go语言解析网页利器goquery使用教程(爬虫必备)

某些时候需要爬取网页中指定信息时,通常需要一些框架解析网页行成dom模型,然后来操作节点来获取相应的信息。在java中很显然就是Jsoup,而在Golang里,应该就是这个goquery了吧。

goquery github地址 https://github.com/PuerkitoBio/goquery

安装

由于它依赖 Go语言的 net/html 包以及css选择库 cascadia, 因此我们要先手动安装net/html包,后者不需要我们手动安装。
运行

go get https://github.com/PuerkitoBio/goquery

之后可能会出现golang.org\x失败相关的,那里是由于被墙了导致(好像又不是o_o ....),那里自己百度下吧,具体错误我当时也没记录( ̄、 ̄)

然后应该就可以使用goquery包了

使用

语法相关这里就不过分说明,直接上用法吧(●‘?‘●)

首先导入该包

import  "github.com/PuerkitoBio/goquery"

加载页面

就用官方的例子吧,我比较懒??

  // 请求html页面
  res, err := http.Get("http://metalsucks.net")
  if err != nil {
    // 错误处理
    log.Fatal(err)
  }
  defer res.Body.Close()
  if res.StatusCode != 200 {
    log.Fatalf("status code error: %d %s", res.StatusCode, res.Status)
  }

获得document对象

有多种获得document对象的方法,这里是比较常见的一种

  // 加载 HTML document对象
  doc, err := goquery.NewDocumentFromReader(res.Body)
  if err != nil {
    log.Fatal(err)
  }

选择元素

选择器语法就是css选择器语法,和jsoup中的类似

  // Find the review items
  doc.Find(".sidebar-reviews article .content-block").Each(func(i int, s *goquery.Selection) {
    // For each item found, get the band and title
    band := s.Find("a").Text()
    title := s.Find("i").Text()
    fmt.Printf("Review %d: %s - %s\n", i, band, title)
  })

要爬取的即是图中的内容

运行结果

原文地址:https://www.cnblogs.com/asche/p/10163753.html

时间: 2024-11-06 03:52:52

go语言解析网页利器goquery使用教程(爬虫必备)的相关文章

复习c语言解析教程(一)

       最近又去图书馆找学习c语言的书籍了,感觉   由 <美>Al Kelley和Ira Pohl   编著·麻志毅  译的<c语言解析教程>翻译本挺好,尤其是其中的c语言学习方法(当然我还是比较建议学过这两种语言之后再做浏览比较好),在学习c语言的过程中,穿插讲解了c++! 在c语言的道路上,自己还是要好好努力才是! 1.不包含头文件的程序也是可以运行的! int main() { int a=3,b=4; return 0; }   2.如果a和b是int类型的变量,其

使用Jsoup解析网页

之前已经发表过一篇使用HtmlParser类来解析视频网站的教程 http://blog.csdn.net/gfd54gd5f46/article/details/54960538 我发现htmlparser类太旧了,而且用起来语法也不清晰. 所以我又找来一个更强大的解析网页的工具类:Jsoup 来帮助我们制作更强大的网络爬虫 下载Jsoup类       jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS

Python中的urlparse、urllib抓取和解析网页(一)

对搜索引擎.文件索引.文档转换.数据检索.站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理.事实上,通过Python 语言提供的各种模块,我们无需借助Web服务器或者Web浏览器就能够解析和处理HTML文档.本文将详细介绍如何利用Python抓取和解析网页.首 先,我们介绍一个可以帮助简化打开位于本地和Web上的HTML文档的Python模块,然后,我们论述如何使用Python模块来迅速解析在HTML文 件中的数据,从而处理特定的内容,如链接.图像和Cookie等.最后,

Swift语言中如何使用JSON数据教程

原文:Swift语言中如何使用JSON数据教程 这是一篇翻译文章,原文出处:http://www.raywenderlich.com/82706/working-with-json-in-swift-tutorial JSON(全称:JavaScript Object Notation),是网络服务中传输数据的常用方法,JSON因为容易使用,且可读性强, 所以非常受到欢迎. 下面是个JSON的一个片段: [ {"person": {"name":"Dani

解析HTML利器AngleSharp介绍

解析HTML利器AngleSharp介绍 AngleSharp是基于.NET(C#)开发的专门为解析xHTML源码的DLL组件. 项目地址:https://github.com/FlorianRappl/AngleSharp 我主要介绍是一些使用AngleSharp常用的方法,跟大家介绍,我会以http://www.cnblogs.com站点作为原型. 其它的类似组件有: 国内:Jumony github地址:https://github.com/Ivony/Jumony 作者Blog地址:ht

使用Python中的urlparse、urllib抓取和解析网页(一)(转)

对搜索引擎.文件索引.文档转换.数据检索.站点备份或迁移等应用程序来说,经常用到对网页(即HTML文件)的解析处理.事实上,通过Python 语言提供的各种模块,我们无需借助Web服务器或者Web浏览器就能够解析和处理HTML文档.本文将详细介绍如何利用Python抓取和解析网页.首 先,我们介绍一个可以帮助简化打开位于本地和Web上的HTML文档的Python模块,然后,我们论述如何使用Python模块来迅速解析在HTML文 件中的数据,从而处理特定的内容,如链接.图像和Cookie等.最后,

第9课、解析网页中的元素-四周学会爬虫系统

目标:爬取本地网页中,评分大于3的文章,并打印出来 准备: 安装Python3.0. 安装PyCharm,用于开发Python的集成环境. 安装BeautifulSoup库,学习爬虫需要的库. BeautifulSoup:是一个可以从HTML和XML中读取数据的库.库也叫模块,在笨办法学Python中叫做特征,是其他程序员开发好的一些代码,可以拿来导入(import),然后调用.开发之前最好先学习一下Python的基本知识,<笨办法学python>或者是<编程小白的第一本python&g

神奇的go语言(网页下载)

[ 声明:版权所有,欢迎转载,请勿用于商业用途.  联系信箱:feixiaoxing @163.com] 目前,网上关于网页爬行的代码很多.但是,自从看了go语言的web下载代码之后,我才发现原来它的网页下载代码才是最简单的.不信的话,大家可以看一下, package main import( "fmt" "log" "net/http" "os" ) func main(){ resp,err:=http.Get("

使用java开源工具httpClient及jsoup抓取解析网页数据

今天做项目的时候遇到这样一个需求,需要在网页上展示今日黄历信息,数据格式如下 公历时间:2016年04月11日 星期一 农历时间:猴年三月初五 天干地支:丙申年 壬辰月 癸亥日 宜:求子 祈福 开光 祭祀 安床 忌:玉堂(黄道)危日,忌出行 主要包括公历/农历日期,以及忌宜信息的等.但是手里并没有现成的数据可供使用,怎么办呢? 革命前辈曾经说过,没有枪,没有炮,敌(wang)人(luo)给我们造!网络上有很多现成的在线 万年历应用可供使用,虽然没有现成接口,但是我们可以伸出手来,自己去拿.也就是