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

绵阳网络公司网站建设武威做网站的公司

绵阳网络公司网站建设,武威做网站的公司,杭州十大电商公司排名,wordpress点击图片悬浮目录 Go 爬虫三种框架的基本使用介绍1. Colly2. Golang.org/x/net/html3. GoQuery Go 爬虫示例使用Go中的http包进行爬虫Step 1#xff1a;导入包Step 2#xff1a;发送请求Step 3#xff1a;读取响应Step 4#xff1a;解析HTMLStep 5#xff1a;总结 使用Colley爬虫 结语… 目录 Go 爬虫三种框架的基本使用介绍1. Colly2. Golang.org/x/net/html3. GoQuery Go 爬虫示例使用Go中的http包进行爬虫Step 1导入包Step 2发送请求Step 3读取响应Step 4解析HTMLStep 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 (fmtnet/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 (fmtio/ioutilnet/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 (fmtnet/httpgithub.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 (fmtgithub.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.OnRequest、c.OnResponse、c.OnError、c.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://www.dnsts.com.cn/news/105839.html

相关文章:

  • 交通建设门户网站网站顶部有空白
  • 代理网站推荐教务系统
  • 丽水网站建设微信推广成都网站建设公司好做吗
  • 二手商品网站的设计与建设论文开网店需要什么流程
  • 建设网站群国外刺绣图案设计网站
  • 河北网站建设推广wordpress本地怎么搬家
  • 住房和城乡建设部网站 事故网站源码被注册为商标
  • 网站页面设计欣赏企业网站如何设计
  • 云南建设厅网站房地产开发资质delphi WordPress
  • 深圳网站设计权威乐云践新门户网站建设解决方案
  • 设计师网站登录青岛 正规网站空间
  • 做解析视频网站怎么赚钱个人导航网站如何赚钱
  • 网站开发文档要求手机网站菜单网页怎么做的
  • 门头沟营销型网站建设wordpress x theme
  • 在线教育网站开发文档内蒙古两学一做网站
  • 没有rss源的网站如何做rss订阅太原网页制作服务
  • 新网站怎么做seo 风享浙江省火电建设公司网站
  • 做跨境电商有没推荐的网站在线制作免费生成图片logo
  • 济南网站建设设计计算机包含哪些专业
  • 网站建设终身不用维护手机网站创建
  • 海南建设银行官方网站编写软件的软件
  • 三亚本地网站建设免费推广做产品的网站
  • 百度的企业网站如何自己创造一个网站平台
  • 芜湖营销型网站建设网站添加在线支付功能
  • 免费php网站网页设计个人网站作业
  • 惠州淘宝网站建设中国建设银行的网站色彩
  • 谷歌网站怎么设置才能打开网站兴宁区住房和城乡建设局网站
  • 兰州最好的网站开发公司学历提升机构的套路
  • 淄博百度网站做微信网站
  • 关于建设校园网站申请报告建造电商网站