goquery 查找html标签,Go语言爬虫框架之Colly和Goquery

本文介绍了Go语言中的爬虫框架Colly和Goquery,阐述了网络爬虫的基本概念和简单算法。Colly提供了一种灵活的方式来创建爬虫,包括速率限制和并行爬行。Goquery作为Go中的jQuery实现,增强了DOM遍历和操作能力。通过实例展示了如何使用Colly和Goquery配合抓取和解析HTML内容。
摘要由CSDN通过智能技术生成

写在前面

Go语言爬虫框架之Colly和Goquery

Python框架框架比较有BeautifulSoup或Scrapy,基于Go的爬虫框架是比较强健的,尤其Colly和Goquery是比较强大的工具,其灵活性和 表达性都比较优秀。

网络爬虫

网络爬虫是什么?从本质上讲,网络爬虫的工作原理通过检查web页面的HTML内容和执行某种类型的行动基于内容。通常,抓取暴露的链接,爬虫按照队列的去爬取。我们也可以从当前页面保存数据提取。例如,如果我们的维基百科页面上开始,我们可能保存页面的文本和标题。

爬虫的简单算法

initialize Queue

enqueue SeedURL

while Queue is not empty:

URL = Pop element from Queue

Page = Visit(URL)

Links = ExtractLinks(Page)

Enqueue Links on Queue

Visit和ExtractLinks函数是改变的地方,两个函数的应用都是特定的。我们的爬虫会尽力解释整个WEB的图,就像google一样,或者像Wikipedia一样简单一些。

随着你使用的用例的增加许多事情会变得复杂起来,许多许多的页面会被抓取,你可能需要一个更尖端的爬虫同时运行,对于更为复杂的页面,你需要一个更强大的HTML解释器。

Colly

Colly是一个基于Go语言的灵活的爬虫框架,开箱即用,你会获得一些速率限制,并行爬行等支持。

Colly基本组件之一是Collector,Collector保持跟踪那些需要被爬取的页面,并且保持回调当页面被爬取的时候。

开始

创造一个Collector是容易的,但是我们有许多可选项我们可以使用。

c := colly.NewCollector(

// Restrict crawling to specific domains

colly.AllowedDomains("godoc.org"),

// Allow visiting the same page multiple times

colly.AllowURLRevisit(),

// Allow crawling to be done in parallel / async

colly.Async(true),

)

你可以只有colly.NewCollector(),然后自己添加那些可选项。

我们也可以使用一些特别的限制让我们的爬虫表现的像一个行为良好的网络公民,Colly添加速率限制是简单的。

c.Limit(&colly.LimitRule{

// Filter domains affected by this rule

DomainGlob: "godoc.org/*

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值