Colly 第四课 goquery选择器的使用 - Go语言中文社区

Colly 第四课 goquery选择器的使用


1.为什么要学习goquery?

咱们先来看下goquery选择器在colly中是如何被使用的

 

从html页面中匹配元素的方式:正则表达式,xpath,goquery

正则表达式的可读性和可维护性不够好

xpath我暂时没有接触

 

类似jQuery 的东西,是go语言版本的,我们不是做web开发,我们学习goquery是为了更好的为学习colly进行服务的。

 

1.Document元素

Document代表的是一个html页面

五种初始化方法中,有三种是最常用的。

colly中是将html解析成DOM格式的数据,然后进行查询和过滤的

 

2.Selection元素

 -  Eq(index int) *Selection     //根据索引获取某个节点集

 

  -  First() *Selection          //获取第一个子节点集

 

  -  Last() *Selection         //获取最后一个子节点集

 

  -  Next() *Selection         //获取下一个兄弟节点集

 

  -  NextAll() *Selection      //获取后面所有兄弟节点集

 

  -  Prev() *Selection         //前一个兄弟节点集

 

  - Get(index int) *html.Node  //根据索引获取一个节点

 

  - Index() int                //返回选择对象中第一个元素的位置 

 

  - Slice(start, end int) *Selection  //根据起始位置获取子节点集

 

3.过滤方法

a<href class = "www.baidu.com" /href>

a<href class = "www.baidu1.com" /href>

a<href class = "www.baidu2.com" /href>

Filter() //过滤

Has() //是否包含

contain() /是否包含

 

4)循环遍历选择的节点

 

 -  Each(f func(int, *Selection)) *Selection //遍历

 

- EachWithBreak(f func(int, *Selection) bool) *Selection  //可中断遍历

 

- Map(f func(int, *Selection) string) (result []string)  //返回字符串数组

 

 

 

5)常用goquery选择器表达式

Find(element)

Find(element#id)

Find(.classname) #class选择器

Find(.classname) #特定element中,特定class选择器

通过div[class]这个选择器,筛选出Element为div并且有class这个属性的元素

Find("div[class=name]")

 

6 )选择器的或运算

可以采用多个选择器进行组合使用,并且以逗号(,)分割,Find("selector1, selector2, selectorN")表示,只要满足其中一个选择器就可以被筛选出来,也就是选择器的或(|)运算操作。

 

 

 

https://www.flysnow.org/2018/01/20/golang-goquery-examples-selector.html

https://blog.csdn.net/u010412301/article/details/79374640

https://jonathanmh.com/web-scraping-golang-goquery/

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/haolipengzhanshen/article/details/88977962
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-09-04 15:31:04
  • 阅读 ( 2845 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢