千家信息网

Golang网络爬虫框架gocolly/colly怎么用

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,小编给大家分享一下Golang网络爬虫框架gocolly/colly怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!安
千家信息网最后更新 2025年12月01日Golang网络爬虫框架gocolly/colly怎么用

小编给大家分享一下Golang网络爬虫框架gocolly/colly怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

安装

go get -u github.com/gocolly/colly/...

例子

import ( "fmt" "github.com/gocolly/colly")func main() { c := colly.NewCollector() c.OnResponse(func(r *colly.Response) { fmt.Println("IP:", string(r.Body)) }) //c.SetProxy("http://127.0.0.1:1080") c.Visit("http://ip.cip.cc/")}

SetProxy函数可以用来配置HTTP代理。

colly的主体是Collector对象,管理网络通信和负责在作业运行时执行附加的回掉函数。使用colly需要先初始化Collector:

c := colly.NewCollector()

vgo

vgo是Go语言推出的第三方库管理工具,在Go语言新版本中使用。

常用的命令行:

· go help mod 查看帮助。

· go mod init <项目模块名称>初始化模块,会在项目根目录下生成 go.mod 文件,是可以自己手动编辑的。

依赖包大多在Github上,安装依赖可能会出现连接超时等问题,可以配置全局git代理:

git config --global http.proxy http://127.0.0.1:1080git config --global https.proxy https://127.0.0.1:1080#取消代理:git config --global --unset http.proxygit config --global --unset https.proxy

cmd走shadowsocks代理:

set http_proxy=127.0.0.1:1080set https_proxy=127.0.0.1:1080curl cip.ccIP : 140.206.97.42地址 : 中国 上海数据二 : 上海市 | 联通URL : http://www.cip.cc/140.206.97.42

Linux使用export设置环境变量,代码同上。

回掉函数的调用顺序

1. OnRequest 在发起请求前被调用。

2. OnError 请求过程中如果发生错误被调用。

3. OnResponse 收到回复后被调用。

4. OnHTML 在OnResponse之后被调用,如果收到的内容是HTML 。

5. OnScraped 在OnHTML之后被调用。

官方提供的Basic示例代码:

package mainimport ( "fmt" "github.com/gocolly/colly")func main() { // Instantiate default collector c := colly.NewCollector( // Visit only domains: hackerspaces.org, wiki.hackerspaces.org colly.AllowedDomains("hackerspaces.org", "wiki.hackerspaces.org"), ) // On every a element which has href attribute call callback c.OnHTML("a[href]", func(e *colly.HTMLElement) { link := e.Attr("href") // Print link fmt.Printf("Link found: %q -> %s\n", e.Text, link) // Visit link found on page // Only those links are visited which are in AllowedDomains c.Visit(e.Request.AbsoluteURL(link)) }) // Before making a request print "Visiting ..." c.OnRequest(func(r *colly.Request) { fmt.Println("Visiting", r.URL.String()) }) // Start scraping on https://hackerspaces.org c.Visit("https://hackerspaces.org/")}

该实例程序仅访问hackerspaces.org域内的链接,OnHTML回掉函数的选择器为a[href],选择页面内具有href属性的a类型元素,找到链接后继续抓取。 运行的部分结果如下:

Visiting https://hackerspaces.org/Link found: "navigation" -> #column-oneLink found: "search" -> #searchInputLink found: "" -> /File:Cbase07.jpgVisiting https://hackerspaces.org/File:Cbase07.jpgLink found: "navigation" -> #column-oneLink found: "search" -> #searchInputLink found: "File" -> #fileLink found: "File history" -> #filehistoryLink found: "File usage" -> #filelinksLink found: "" -> /images/e/ec/Cbase07.jpgVisiting https://hackerspaces.org/images/e/ec/Cbase07.jpgLink found: "800 × 600 pixels" -> /images/thumb/e/ec/Cbase07.jpg/800px-Cbase07.jpgVisiting https://hackerspaces.org/images/thumb/e/ec/Cbase07.jpg/800px-Cbase07.jpg

以上是"Golang网络爬虫框架gocolly/colly怎么用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

函数 代理 网络 内容 篇文章 框架 爬虫 代码 语言 链接 上海 帮助 管理 运行 选择 配置 不怎么 主体 例子 元素 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 asp数据库添加 辽宁网络安全工程是什么 拉流服务器收费标准 云端服务器作用 服务器配硬件管理口地址 数据库是谁研发出来的 杭州软件开发平台公司哪个好 海门租房网络安全 数据库字段大写 松江区特定软件开发服务生产厂家 戴尔服务器如何在bios中关闭睿频 盗版只狼登不上服务器 数据库语文和数学的平均分 我的时间服务器在哪里输入命令 电商保险软件开发 服务器登录不了手机号怎么办 点米互联网科技有限公司怎么样 个税申报显示执行数据库操作失败 全省网络安全检查报告 戴尔服务器进入管理界面 蜗牛移动服务器维护需要多久 软件开发公司郑州紫荆山路 服务器电源2980W改装 轻量型和普通服务器的区别 南京集团软件开发公司有哪些 tidb数据库多大 阿里云计算软件开发 看服务器版本命令是什么 培训网络技术课程 软件开发成本估算 不够
0