当前位置: 首页>>代码示例>>Golang>>正文


Golang gocrawl.URLContext类代码示例

本文整理汇总了Golang中github.com/PuerkitoBio/gocrawl.URLContext的典型用法代码示例。如果您正苦于以下问题:Golang URLContext类的具体用法?Golang URLContext怎么用?Golang URLContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


在下文中一共展示了URLContext类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: Visit

func (this *ExampleExtender) Visit(ctx *gocrawl.URLContext, res *http.Response, doc *goquery.Document) (interface{}, bool) {
	// fmt.Println("visit url: ", ctx.URL(), "state: ", ctx.State)
	fmt.Printf("\"%v\",\n", ctx.URL())
	fmt.Printf("\t%T\t%+v\n", doc, doc)
	// urls := processLinks(doc)
	links := make(map[*url.URL]interface{})
	// i, _ := ctx.State.(int)
	// nextDepth := i - 1
	// if nextDepth <= 0 {
	// 	return nil, false
	// }
	// for _, u := range urls {
	// 	links[u] = nextDepth
	// }
	return links, false
}
开发者ID:cleesmith,项目名称:golang_learning,代码行数:16,代码来源:crawl_depth2_show_links.go

示例2: Filter

func (this *ExampleExtender) Filter(ctx *gocrawl.URLContext, isVisited bool) bool {
	// fmt.Println("filter url: ", ctx.URL(), "state: ", ctx.State, "isVisited: ", isVisited, "ctx.IsRobotsURL(): ", ctx.IsRobotsURL())
	if ctx.SourceURL() == nil {
		ctx.State = DEPTH
		return !isVisited
	}
	if ctx.State != nil {
		i, ok := ctx.State.(int)
		if ok && i > 0 {
			return !isVisited
		}
	} else {
		fmt.Println("ctx.state nil, ctx.sourceURL: ", ctx.SourceURL())
	}
	return false
}
开发者ID:cleesmith,项目名称:golang_learning,代码行数:16,代码来源:crawl_depth2_show_links.go

示例3: Visit

func (self *CustomExtender) Visit(ctx *gocrawl.URLContext, res *http.Response, doc *goquery.Document) (interface{}, bool) {
	fmt.Println(ctx.NormalizedURL().String())

	db := GetConn()
	mIns, err := db.Prepare("INSERT INTO mz(photo_href, photo_thumb_src, photo_large_src, photo_public_src, people_href) VALUES( ?, ?, ?, ?, ? )") // ? = 占位符

	if err != nil {
		panic(err.Error())
	}

	defer mIns.Close() // main结束是关闭

	//fmt.Println(doc.Find(".photo_wrap").Text())

	doc.Find(".photo_wrap").Each(func(i int, s *goquery.Selection) {
		// For each item found, get the band and title
		// fmt.Println(s.Find("a").First().Attr("title"))
		// fmt.Println(s.Find("a").First().Attr("href"))
		// fmt.Println(s.Find("img").First().Attr("src"))

		var photo_href, photo_thumb_src, photo_large_src, photo_public_src, people_href string
		photo_href = first(s.Find("a").First().Attr("href")).(string)
		photo_thumb_src = first(s.Find("img").First().Attr("src")).(string)
		people_href = first(s.Find("a").First().Attr("title")).(string)

		_, err = mIns.Exec(photo_href, photo_thumb_src, photo_large_src, photo_public_src, people_href)

		// 执行插入
		if err != nil {
			panic(err.Error())
		}
	})

	// if rxGrep.MatchString(ctx.NormalizedURL().String()) {
	// // print problem title
	// fmt.Println(doc.Find("h1").Text())
	// }

	// defer db.Close()

	return nil, true
}
开发者ID:huanghua581,项目名称:mei,代码行数:42,代码来源:main.go

示例4: Filter

func (e *Ext) Filter(ctx *gocrawl.URLContext, isVisited bool) bool {
	if isVisited {
		return false
	}
	if ctx.URL().Host == "github.com" || ctx.URL().Host == "golang.org" || ctx.URL().Host == "0value.com" {
		return true
	}
	return false
}
开发者ID:alee88,项目名称:gocrawl,代码行数:9,代码来源:main.go

示例5: Filter

// Override Filter for our need.
func (x *ExampleExtender) Filter(ctx *gocrawl.URLContext, isVisited bool) bool {
	return !isVisited && rxOk.MatchString(ctx.NormalizedURL().String())
}
开发者ID:PuerkitoBio,项目名称:gocrawl,代码行数:4,代码来源:examples_test.go

示例6: Filter

func (self *CustomExtender) Filter(ctx *gocrawl.URLContext, isVisited bool) bool {
	// fmt.Println(ctx.NormalizedURL().String())
	return !isVisited && rxOk.MatchString(ctx.NormalizedURL().String())
}
开发者ID:huanghua581,项目名称:mei,代码行数:4,代码来源:main.go

示例7: Visit

func (e *Ext) Visit(ctx *gocrawl.URLContext, res *http.Response, doc *goquery.Document) (interface{}, bool) {
	fmt.Printf("Visit: %s\n", ctx.URL())
	return nil, true
}
开发者ID:alee88,项目名称:gocrawl,代码行数:4,代码来源:main.go


注:本文中的github.com/PuerkitoBio/gocrawl.URLContext类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。