Colly 第四课 goquery选择器的使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/haolipengzhanshen/article/details/88977962

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/

猜你喜欢

转载自blog.csdn.net/haolipengzhanshen/article/details/88977962
今日推荐