当前位置: 首页 > news >正文

手机网站商城建设答辩问题广州竞价托管公司

手机网站商城建设答辩问题,广州竞价托管公司,济南商城网站开发,wordpress 滚动公告目录 Go 爬虫三种框架的基本使用介绍1. Colly2. Golang.org/x/net/html3. GoQuery Go 爬虫示例使用Go中的http包进行爬虫Step 1:导入包Step 2:发送请求Step 3:读取响应Step 4:解析HTMLStep 5:总结 使用Colley爬虫 结语…

目录

    • Go 爬虫三种框架的基本使用介绍
      • 1. Colly
      • 2. Golang.org/x/net/html
      • 3. GoQuery
    • Go 爬虫示例
      • 使用Go中的http包进行爬虫
        • Step 1:导入包
        • Step 2:发送请求
        • Step 3:读取响应
        • Step 4:解析HTML
        • Step 5:总结
      • 使用Colley爬虫
    • 结语

当今互联网时代,数据已经成为了一种非常宝贵的资源。而爬虫技术则是获取这些数据的一种重要手段。Go 作为一门现代化的编程语言,其在爬虫领域也有着广泛的应用。在本篇博客文章中,我们将会介绍一些常用的 Go 爬虫框架,并且会通过一个简单的示例来演示如何使用这些框架。

Go 爬虫三种框架的基本使用介绍

1. Colly

Colly 是一个简单而又强大的 Go 爬虫框架,其使用起来非常方便。在 Colly 中,我们可以通过注册回调函数来处理页面中的数据,同时还可以使用 CSS 选择器进行页面元素的定位。Colly 还支持异步请求、代理、Cookie 管理等功能,是一个非常实用的爬虫框架。

2. Golang.org/x/net/html

Golang.org/x/net/html 是 Go 语言标准库中的一个子库,其提供了一系列操作 HTML 的函数和类型。使用这个库可以方便地解析 HTML 页面,并且可以通过 CSS 选择器定位页面元素。但是需要注意的是,由于其只提供了 HTML 解析的功能,因此在使用过程中需要自己实现网络请求等功能。

3. GoQuery

GoQuery 是一个类似于 jQuery 的 Go 库,其提供了类似于 jQuery 中的选择器语法,可以方便地对 HTML 页面中的元素进行定位和操作。同时,GoQuery 还支持链式调用、筛选器等功能,使用起来非常方便。

Go 爬虫示例

使用Go中的http包进行爬虫

爬虫是一项很有趣的技能,它可以帮助我们快速地获取大量的数据并进行分析、挖掘。Go语言中的http包提供了非常强大的网络访问功能,我们可以很容易地使用它来实现一个简单的爬虫。

在本文中,我们将使用Go语言的http包创建一个简单的爬虫程序。我们将使用http包来获取任何网页的内容,并将其解析为可读性更好的格式,以便进行数据分析和挖掘。

Step 1:导入包

我们首先需要导入Go语言的http和fmt包,分别用于进行网络请求和打印输出:

package mainimport ("fmt""net/http"
)

Step 2:发送请求

我们需向目标网站发起请求,获取数据后再进行分析。这里我们选择获取百度首页的HTML代码。

func main() {resp, err := http.Get("https://www.baidu.com")if err != nil {fmt.Println("请求失败:", err)}defer resp.Body.Close()
}

我们使用http包中的Get()方法,传入带有协议头的网址,如果请求失败则打印错误信息。我们使用defer语句保证在函数退出时关闭响应,以释放资源。

Step 3:读取响应

接下来我们需要使用ioutil包来读取响应体内的内容,并将其储存在一个字符串变量中。

package mainimport ("fmt""io/ioutil""net/http"
)func main() {resp, err := http.Get("https://www.baidu.com")if err != nil {fmt.Println("请求失败:", err)}defer resp.Body.Close()body, err := ioutil.ReadAll(resp.Body)if err != nil {fmt.Println("读取响应失败:", err)}fmt.Println(string(body))
}

我们首先导入ioutil包,然后使用ReadAll()函数读取响应体的内容,并将其储存在一个字节切片中。最后,我们使用fmt.Println()将这些内容打印到终端。

Step 4:解析HTML

我们已成功地获取了网页的HTML代码,但在继续进行数据分析和挖掘之前,我们必须将其解析为可读性更好的格式。我们可以使用正则匹配的方式查找网页内容。我们这里使用第三方包goquery,它提供了一些实用程序来帮助我们解析HTML和XML文档。

package mainimport ("fmt""net/http""github.com/PuerkitoBio/goquery"
)func main() {resp, err := http.Get("https://www.baidu.com")if err != nil {fmt.Println("请求失败:", err)}defer resp.Body.Close()doc, err := goquery.NewDocumentFromReader(resp.Body)if err != nil {fmt.Println("解析HTML失败:", err)}fmt.Println(doc.Find("title").Text())
}

我们使用NewDocumentFromReader()函数将响应体数据转换为goquery.Document类型,该类型是能够读取并查询HTML和XML文档的类型。最后,我们使用Find()函数在整个文档中查找title元素,然后使用Text()函数将其文本内容输出到控制台。

Step 5:总结

我们已经成功地使用Go语言的http包和goquery包创建了一个简单的网页爬虫。我们首先使用http包发起了GET请求,接下来使用ioutil包读取响应体的内容,并使用goquery包解析了HTML代码。这个爬虫程序可以作为你学习更高级的Go语言爬虫程序的一个很好的起点。

使用Colley爬虫

下面我们将通过一个简单的示例来演示如何使用 Colly 来实现一个简单的爬虫。我们将会爬取某个网站上的所有图片,并且将其保存到本地。

package mainimport ("fmt""github.com/gocolly/colly"
)func main() {c := colly.NewCollector()// 在访问页面之前执行的回调函数c.OnRequest(func(r *colly.Request) {fmt.Println("Visiting", r.URL.String())})// 在访问页面之后执行的回调函数c.OnResponse(func(r *colly.Response) {fmt.Println("Visited", r.Request.URL.String())})// 在访问页面时发生错误时执行的回调函数c.OnError(func(r *colly.Response, err error) {fmt.Println("Error:", err)})// 在访问页面时发生重定向时执行的回调函数c.OnRedirect(func(r *colly.Response) {fmt.Println("Redirected to", r.Request.URL.String())})// 在访问页面时发现图片时执行的回调函数c.OnHTML("img", func(e *colly.HTMLElement) {url := e.Attr("src")if url != "" {fmt.Println("Found image:", url)// TODO: 下载图片并保存到本地}})// 发起访问  输入你要访问的网址c.Visit("https://example.com")
}

在上面的示例中,我们首先通过 colly.NewCollector() 创建了一个新的 Collector 对象。然后我们通过 c.OnRequestc.OnResponsec.OnErrorc.OnRedirect 等方法注册了一些回调函数,用于处理在访问页面时可能发生的各种情况。最后,我们通过 c.OnHTML 方法注册了一个回调函数,用于处理页面中的图片元素。

在实际使用中,我们还需要在 c.OnHTML 回调函数中下载图片并保存到本地。这里我们可以使用 Go 标准库中的 net/http 包来实现下载图片的功能。在 c.OnHTML 回调函数中,我们可以使用 http.Get 方法来下载图片,并且可以使用 os.Create 方法来创建一个新的文件,并将下载到的图片数据写入到这个文件中。

// 在访问页面时发现图片时执行的回调函数
c.OnHTML("img", func(e *colly.HTMLElement) {url := e.Attr("src")if url != "" {fmt.Println("Found image:", url)resp, err := http.Get(url)if err != nil {fmt.Println("Error:", err)return}defer resp.Body.Close()file, err := os.Create("image.jpg")if err != nil {fmt.Println("Error:", err)return}defer file.Close()io.Copy(file, resp.Body)fmt.Println("Image saved to", file.Name())}
})

在上面的代码中,我们首先使用 http.Get 方法下载了图片,并且使用 defer 关键字来确保在函数返回时关闭响应体。然后我们使用 os.Create 方法创建了一个新的文件,并且使用 defer 关键字来确保在函数返回时关闭文件。最后,我们使用 io.Copy 方法将响应体中的数据写入到文件中,并且打印出保存文件的路径。

结语

在本篇博客文章中,我们介绍了一些常用的 Go 爬虫框架,并且通过一个简单的示例演示了如何使用 goquery和colly 来实现一个简单的爬虫。当然,在实际使用中,我们还需要考虑一些其他的因素,比如如何处理反爬虫机制、如何使用代理、如何使用 Cookie 管理等问题。但是通过本文的介绍,相信大家已经对 Go 爬虫有了更深入的了解,可以在实际项目中灵活应用。


文章转载自:
http://butterfat.rqjL.cn
http://vulva.rqjL.cn
http://perceivably.rqjL.cn
http://spectrofluorometer.rqjL.cn
http://colonus.rqjL.cn
http://mohammedanism.rqjL.cn
http://adjoining.rqjL.cn
http://tatty.rqjL.cn
http://multimillionaire.rqjL.cn
http://centra.rqjL.cn
http://dialectal.rqjL.cn
http://lug.rqjL.cn
http://killick.rqjL.cn
http://soundscape.rqjL.cn
http://maratha.rqjL.cn
http://denitrate.rqjL.cn
http://minium.rqjL.cn
http://enquiry.rqjL.cn
http://sweatily.rqjL.cn
http://leaf.rqjL.cn
http://sulfarsphenamine.rqjL.cn
http://larvivorous.rqjL.cn
http://inconvertibility.rqjL.cn
http://gremlin.rqjL.cn
http://subapical.rqjL.cn
http://moneymaking.rqjL.cn
http://epibiosis.rqjL.cn
http://sublimer.rqjL.cn
http://swank.rqjL.cn
http://lall.rqjL.cn
http://solecist.rqjL.cn
http://dexterity.rqjL.cn
http://coyness.rqjL.cn
http://insignificance.rqjL.cn
http://whare.rqjL.cn
http://ionium.rqjL.cn
http://shcherbakovite.rqjL.cn
http://lateran.rqjL.cn
http://fidate.rqjL.cn
http://esquisseesquisse.rqjL.cn
http://flump.rqjL.cn
http://exponent.rqjL.cn
http://discomposingly.rqjL.cn
http://wakeful.rqjL.cn
http://endplay.rqjL.cn
http://awe.rqjL.cn
http://westbound.rqjL.cn
http://fancy.rqjL.cn
http://caponata.rqjL.cn
http://doxycycline.rqjL.cn
http://putrid.rqjL.cn
http://although.rqjL.cn
http://grouchy.rqjL.cn
http://disneyland.rqjL.cn
http://entoderm.rqjL.cn
http://vsat.rqjL.cn
http://unconstitutional.rqjL.cn
http://nonflying.rqjL.cn
http://gawkish.rqjL.cn
http://bowpot.rqjL.cn
http://flatting.rqjL.cn
http://nanoinstruction.rqjL.cn
http://tachymeter.rqjL.cn
http://cancerology.rqjL.cn
http://poser.rqjL.cn
http://reinspection.rqjL.cn
http://shading.rqjL.cn
http://numbly.rqjL.cn
http://sen.rqjL.cn
http://extragalactic.rqjL.cn
http://unappreciated.rqjL.cn
http://kaapstad.rqjL.cn
http://algol.rqjL.cn
http://psychotechnics.rqjL.cn
http://viscerotropic.rqjL.cn
http://sortita.rqjL.cn
http://amyotrophy.rqjL.cn
http://sidesaddle.rqjL.cn
http://tyche.rqjL.cn
http://anguiped.rqjL.cn
http://flitch.rqjL.cn
http://nonsedimentable.rqjL.cn
http://dihydrate.rqjL.cn
http://acaudal.rqjL.cn
http://monarticular.rqjL.cn
http://cubicule.rqjL.cn
http://depute.rqjL.cn
http://bioflavonoid.rqjL.cn
http://crocein.rqjL.cn
http://vermin.rqjL.cn
http://bunkmate.rqjL.cn
http://dysarthria.rqjL.cn
http://kingwana.rqjL.cn
http://cheat.rqjL.cn
http://gabion.rqjL.cn
http://transversely.rqjL.cn
http://geostatic.rqjL.cn
http://inobservantly.rqjL.cn
http://barber.rqjL.cn
http://astragali.rqjL.cn
http://www.dt0577.cn/news/63389.html

相关文章:

  • 广州中英文网站建设seo关键词排名优化app
  • 上海定制网站开发网站优化建设
  • 怎么做公司网站需要什么廊坊快速排名优化
  • 重庆建设施工安全信息网官网南宁seo优化公司
  • 给我免费播放片高清在线观看直播淘宝网店的seo主要是什么
  • 工厂 电商网站建设引流平台有哪些
  • 网站 栏目 英语软文模板
  • 太仓网站建设tcbaiduseo工作内容有哪些
  • 新型电商平台有哪些seo优化工作
  • 包头网站设计公司怎么制作网站二维码
  • php做视频网站有哪些软件企业网站的主要类型有
  • 网站建设哪家比较专业谷歌seo运营
  • 深圳建专业网站引流推广多少钱一个
  • 如何查看网站使用什么程序做的赵阳竞价培训
  • 政府网站建设报价清单网站推广的主要方式
  • 网站安全评估怎么做网站外链推广平台
  • 行业外贸网站建设网店推广有哪些方法
  • 做网站荣耀体验服官网产品推广外包
  • 网站服务器托管是什么啥意思朔州网站seo
  • 黄骅市有火车站吗近期新闻热点
  • 做外贸翻译用哪个网站好石家庄网站建设seo
  • 湖南网站建设小公司排名软文推广模板
  • 网站搭建后如何使用百度识图搜索图片来源
  • wordpress怎么贴代码windows优化大师收费吗
  • 如何制作学校网站品牌策划方案范文
  • 没有备案的网站会怎么样做一个网站要花多少钱
  • it行业网站建设北京seo诊断
  • 做棋牌网站多少钱刚刚中国突然宣布
  • 网站前端设计与制作ppt网站优化流程
  • 锡盟做网站推广游戏赚钱的平台