爬虫如何监听插件_Go 爬虫之 colly 从入门到不放弃指南

Go语言中文网,致力于每日分享编码、开源等知识,欢迎关注我,会有意想不到的收获!

7389aad7367f8bcd7cbdb15efe6046e8.png

最近发现知乎上感兴趣的问题越来越少,于是准备聚合下其他平台技术问答,比如 segmentfault、stackoverflow 等。

要完成这个工作,肯定是离不开爬虫的。我就顺便抽时间研究了 Go 的一款爬虫框架 colly。

概要介绍

colly 是 Go 实现的比较有名的一款爬虫框架,而且 Go 在高并发和分布式场景的优势也正是爬虫技术所需要的。它的主要特点是轻量、快速,设计非常优雅,并且分布式的支持也非常简单,易于扩展。

如何学习

爬虫最有名的框架应该就是 Python 的 scrapy,很多人最早接触的爬虫框架就是它,我也不例外。它的文档非常齐全,扩展组件也很丰富。当我们要设计一款爬虫框架时,常会参考它的设计。之前看到一些文章介绍 Go 中也有类似 scrapy 的实现。

相比而言,colly 的学习资料就少的可怜了。刚看到它的时候,我总会情不自禁想借鉴我的 scrapy 使用经验,但结果发现这种生搬硬套并不可行。

到此,我们自然地想到去找些文章阅读,但结果是 colly 相关文章确实有点少,能找到的基本都是官方提供的,而且看起来似乎不是那么完善。没办法,慢慢啃吧!官方的学习资料通常都会有三处,分别是文档、案例和源码。

今天,暂时先从官方文档角度吧!正文开始。

官方文档

官方文档介绍着重使用方法,如果是有爬虫经验的朋友,扫完一遍文档很快。我花了点时间将官网文档的按自己的思路整理了一版。

主体内容不多,涉及安装、快速开始、如何配置、调试、分布式爬虫、存储、运用多收集器、配置优化、扩展。

其中的每篇文档都很短小,甚至是少的基本都不用翻页滚动。

如何安装

colly 的安装和其他的 Go 库安装一样简单。如下:

go get -u github.com/gocolly/colly

一行命令搞定。So easy!

快速开始

我们来通过一个 hello word 案例快速体验下 colly 的使用。步骤如下:

第一步,导入 colly。

import "github.com/gocolly/colly"

第二步,创建 collector。

c := colly.NewCollector()

第三步,事件监听,通过 callback 执行事件处理。

// Find and visit all linksc.OnHTML("a[href]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多款优秀的 JS MVC 框架对比

2019独角兽企业重金招聘Python工程师标准>>> 正如之前说的,产品生产有功能时代转入体验时代,产品为王,体验为王,已经是时代趋势。体验经济的到来,说明前端的技术要求越来越高,完成功能是不行的&…

在WordPress文章中插入表格的四种方法,史上最全

https://boke112.com/4553.html/all td, tr {border: 1px solid #000000;text-align: center;padding: 10px;} 在做 WordPress 网站的时候,很多时候文章中都会用到 table 表格,今天就来总结分享四种在WordPress 文章中插入 table 表格的方法。 一、最简…

(转)在Eclipse中用TODO标签管理任务(Task)

背景:eclipse是一款功能十分强大的编辑,如果能够熟练运用,必定事半功倍,但如果不求甚解,无疑是给自己制造麻烦。 1 标签的使用 1.1 起因 如上图所示,在程序中有很多todo的标签出现,但是却不知道…

python3环境搭建odoo_【环境配置】ubuntu16.04配置odoo13环境

系统环境配置安装python3.6sudo apt-get updatesudo apt-get install software-properties-common python-software-propertiessudo add-apt-repository ppa:jonathonf/python-3.6sudo apt-get install python3.6cd /usr/binsudo rm pythonsudo ln -s python3.6 /usr/bin/pytho…

制作启动U盘与定制多系统启动

制作启动U盘与定制多系统启动 说明:本文将讲述有关bootmgr引导启动与grub引导启动制作的相关经验,文中提到的知识谈不上完全正确,只是一些个人在制作U盘启动获得的心得,但我会尽力正确的解释清楚。 制作启动U盘 所需工具&#xf…

wordpress footer置底

/* 通过calc()函数让内容区块自动伸缩 */ .my-body{min-height: calc(71.7vh - 80px); } footer{height:50px; } 参考:https://www.jianshu.com/p/6efe2c76a2dd 当我们要设置网页中的footer置底(sticky footer),我们可以这样办 …

apache配置解析php

用vim打开apache的核心配置文件vim /usr/local/apache2/conf/httpd.conf找到下面这段文字<Directory />Options FollowSymLinksAllowOverride NoneOrder deny,allowDeny from all </Directory>把deny from all 改为allow from all,若不修改访问网站会是禁…

jsp页面页面post传值_几种JSP页面传值方式

2010-01-25几种JSP页面传值方式&#xff1a;文章分类:Web前端几种JSP页面传值方式&#xff1a;1. 隐藏域传值&#xff1a;&ltform method"post" action"client_crud.jsp" &gt&ltinput type"hidden" name"id" value"&…

How to adjust OOM score for a process?

转载自http://www.dbasquare.com/kb/how-to-adjust-oom-score-for-a-process/ How to adjust OOM score for a process? Each process in Linux has a OOM score assigned to it. Its value is primarily based on the amount of memory a process uses. Whenever system is a…

电脑公司 GHOST WIN10 X64 装机专业版 V2018.04(64位)

http://www.xitongzhijia.net/win10/201804/123923.html 系统简介 电脑公司 GHOST WIN10 X64 装机专业版 V2018.04 系统维护和美化工具&#xff0c;常用软件一站到位&#xff0c;自带安全软件&#xff0c;自动屏蔽木马病毒阻止病毒运行&#xff0c;阻挡填出IE插件&#xff0c;G…

浅谈JavaScript中闭包

引言 闭包可以说是JavaScript中最有特色的一个地方&#xff0c;很好的理解闭包是更深层次的学习JavaScript的基础。这篇文章我们就来简单的谈下JavaScript下的闭包。 闭包是什么&#xff1f; 闭包是什么&#xff1f;通俗的解释是&#xff1a;有权访问另一个函数作用域中变量的函…

Supervisord进程管家

Supervisord进程管家 Supervisord是一个守护进程的工具&#xff0c;当进程意外终止或服务器掉电起来后&#xff0c;希望进程能够自动运行&#xff0c;supervisord可以很好的为我们做这件事情。同时supervisord也自带监控界面&#xff0c;可以通过浏览器灵活的查看、操作。 以安…

WordPress 查询数据库 操作数据库

https://www.168seo.cn/jianzhan/wordpress/advance-wordpress-tutorial/24692.html 插件位置 需要注意的是&#xff0c;由于在WordPress中可以配置wp-content/plugins/目录的位置&#xff0c;所以你必须使用plugin_dir_path()和plugins_url()两个函数来获取插件的路径。 Wor…

std string与线程安全_C++标准库多线程简介Part1

Part1:线程与互斥量本篇文章将简单的介绍一下C的标准线程库&#xff0c;本篇内容十分基础&#xff0c;如果你有C多线程相关的使用经验或者知识&#xff0c;就不必在这篇文章上浪费时间了...如果你认为本篇文章对你有帮助&#xff0c;请点赞&#xff01;&#xff01;&#xff01…

文档列表

兼容性列表 &#xff1a; http://caniuse.com/ 火狐浏览器css 文档 &#xff1a; --https://developer.mozilla.org/en-US/docs/Web/CSS apache &#xff1a;http://www.phpchina.com/resource/manual/apache/ 谷歌构建高性能网站专题&#xff1a;https://developers.google.…

secilog 1.17 发布 增加了英文版本等新功能

2019独角兽企业重金招聘Python工程师标准>>> 日志分析软件 secilog 1.17发布&#xff0c;增加了英文版本&#xff0c;对日志导入增加了日志机器ip和日志机器名&#xff0c;或者日志ip和日志域名的关系。上篇文章1.16&#xff0c;有兴趣可以了解一下。本次升级主要增…

C#常用的内置委托

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; namespace 内置委托{ static class Program { static void Main(string[] args) { } static List<Person> GetPersonList() { return new List<Pe…

WordPress中输出当前页面SQL语句的方法

https://www.jb51.net/cms/145455.html 1. 代码方式 第一步&#xff0c;打开wp-config.php&#xff0c;添加 复制代码 代码如下: define(SAVEQUERIES, true); 开启SAVEQUERIES会使WordPress将当前页面执行的sql查询保存到一个数组中&#xff0c;数组保存了每条查询的语句、…

用clipboard.js实现纯JS复制文本到剪切板

以前很多人都是用ZeroClipboard.js来实现网页复制内容&#xff0c;火端也是用它。ZeroClipboard是利用flash来实现的&#xff0c;ZeroClipboard兼容性很好&#xff0c;但是由于现在越来越多的浏览器不支持flash&#xff0c;导致一些没法正常使用了。 今天火端开始使用clipboard…

vbs获取程序窗体句柄_PyQt5 GUI程序的基本框架

本节先通过一个简单的示例程序介绍PyQt5 GUI应用程序的基本框架。启动Python自带的编程和交互式环境IDLE&#xff0c;点击“File”→“New File”菜单项&#xff0c;打开一个文件编辑窗口&#xff0c;在此窗口中输入下面的程序&#xff0c;并保存为文件demo2_1Hello.py&#xf…