大家好,我是欧盆索思(opensource),每天为你带来优秀的开源项目!
说起爬虫,很多人可能想到Python,其实Go目前在这方面表现也还可以。今天看看Go比较有名的爬虫相关库有哪些?
GoQuery说起Go爬虫相关库,最早、最知名的应该是goquery,这是模仿jquery的,所以使用过jquery的,用goquery会特别亲切,功能也很强大。
项目地址:,Star数9.4k+。
例子:
packagemainimport("fmt""log""net/http""/PuerkitoBio/goquery")funcExampleScrape(){//,err:=("")iferr!=nil{(err)}()!=200{("statuscodeerror:%d%s",,)}//LoadtheHTMLdocumentdoc,err:=()iferr!=nil{(err)}//(".").Each(func(iint,s*){//Foreachitemfound,getthebandandtitleband:=("a").Text()title:=("i").Text()("Review%d:%s-%s\n",i,band,title)})}funcmain(){ExampleScrape()}colly相对来说goqueryAPI有些低级,而colly这个库是一个真正的爬虫框架。这是一个用于Golang的优雅的Scraper和Crawler框架。
项目地址:,Star数:12.3k+。
它还有一个专门的网站:。
funcmain(){c:=()//("a[href]",func(e*){(("href"))})(func(r*){("Visiting",)})("")}注意,colly是基于goquery的。
soupGo中的网页抓取工具,类似于Python的BeautifulSoup。该库很短小,核心代码才500多行,对爬虫实现感兴趣的可以研究下它的源码。
项目地址:,Star数:1.4k+。
示例:
packagemainimport("fmt""/anaskhan96/soup""os")funcmain(){resp,err:=("")iferr!=nil{(1)}doc:=(resp)links:=("div","id","comicLinks").FindAll("a")for_,link:=rangelinks{((),"|Link:",()["href"])}}packagemainimport("fmt""/anaskhan96/soup""os")funcmain(){resp,err:=("")iferr!=nil{(1)}doc:=(resp)links:=("div","id","comicLinks").FindAll("a")for_,link:=rangelinks{((),"|Link:",()["href"])}}Pholcus这是国人写的,分布式高并发爬虫软件。这是一个完整的项目,而不是一个库。它支持单机、服务端、客户端三种运行模式,拥有Web、GUI、命令行三种操作界面;规则简单灵活、批量任务并发、输出方式丰富(mysql/mongodb/kafka/csv/excel等);另外它还支持横纵向两种抓取模式,支持模拟登录和任务暂停、取消等一系列高级功能。
项目地址:,Star数6.6k+。
小结以上有各自的优劣,如果你有需求,可以根据需要选择一个适合你的。
版权所有 © Copyright © 2002-2030 龙辉游戏资讯网站地图