go语言学习爬虫框架总结
admin
2023-02-01 21:45:52
0

  最近主攻go的学习,在学完了基础语法,看完了无闻翻译的《The way to go》和ccmouse大神的慕课网课程后,感觉基础差不多了,继续深入挖掘ccmouse大神的爬虫项目,收获颇丰,感觉还是有一定的难度的,会继续啃下去,学习之余感觉自己实在是井底之蛙,无数光阴尽数浪费,无所建树,思维停留在最原始的层面,无法向前迈进;庆幸现在有所觉悟,人生匆匆几十载,时间是最宝贵的,不论哪个领域,选择一个自己认定的,低下头向前冲刺,丰富自己的头脑,提升自己的认知。好像扯得有点远了,下面是项目的总结。

  1. 项目有一个main.go的入口文件,然后是各个子目录功能文件夹;如图:go语言学习爬虫框架总结 engine是总的控制文件,把请求和正则解析push到总的slice []request中,fetcher主要是通过http库去获取页面body信息,model是要保存的人的信息struct
  2. 说完了目录结构,接下来介绍下流程:go语言学习爬虫框架总结
  3. 整个单机版爬虫项目比较简单,但对我来说收货还是比较大的,其中涉及到一些技术细节,如接口定义,结构方法的使用,
  4. 后面还有并发版本和分布式版本,就比较复杂了,并发版是充分使用go的goroutine和chan,要在大的方向上理清楚思路,抽象出一些公用的方法和结构,重要的正则解析要做test工作,然后在此指引下一步步构建,不可盲目前进。首先并发版需要两个chan,一个in :=chan Request和另一个out:=chan ParseResult,并发版启动WorkerCount个goroutine去并发获取in chan url内容并解析出新url推送到out chan,同时并发版有一个scheduler调度器, 将初始的爬取Request(包括url和对应的parser,因为每个网址的parser规则不同所以要成组传输)放进scheduler里的workerChan即前面定义的in chan, 他俩是一个chan, 程序开始并发执行,由于执行的比较快会被爬取网站断掉, 可以用time.Tike(time)来限制速度,另爬取时可能要设置相应的header头,否则会被屏蔽掉.
  5. 由于并发版多个worker都在争抢Request去执行,控制力度比较小,只适用于单机,不适合多机器分布式部署,故演化出第三个版本:队列实现.队列执行效率和并发版执行效率差不多. scheduler调度器中有rqquestChan chan Request 和 workerChan chan chan Request(注意这里是两个chan), 在run方法中定义一个out chan ParseResult,和并发版相比而言,队列版多了workerChan 这个chan,主要用来实现队列的调度。试着描述下整个过程不一定清晰:go语言学习爬虫框架总结
  6. 下面附上几张ccmouse大神的讲课ppt供大家理解,如有不清楚的欢迎下方留言讨论。go语言学习爬虫框架总结go语言学习爬虫框架总结go语言学习爬虫框架总结

相关内容

热门资讯

拳王夫妇亏掉两亿,谁拖累了谁 作者 | 贺一 编辑 | 吴擎一门失败的生意,足以把一个世界冠军打回起点。最近,前奥运冠军、世界拳王...
中国驻以色列使馆提醒在以中国公... 当前,中东局势持续紧张,冲突延宕。有媒体报道称,以色列已将战备状态提升至最高水平。中国驻以色列使馆再...
论文疑遭蒋方舟抄袭,台湾原作者... 澎湃新闻记者 杨喆蒋方舟学术不端一事近日备受关注,原作者如何看待?7月13日,蒋方舟被中国人民大学认...
女子拦车加塞还向后车吐口水挑衅... 7月22日,重庆,一段“女子用肉身拦车加塞、向后车吐口水的”视频引发关注。重庆交警部门回应:目前事情...
台风“红霞”要来了,最新路径预... 23日,我国正式进入大暑节气,随着副热带高压逐渐加强西伸,江南、华南等地的强降雨将明显减弱,但华北、...
三连冠!宇通客车荣获新能源商用... 近日,2026 EC-PAC新能源商用车(客车)性能评价公益赛在重庆圆满收官。宇通新能源公交一举摘得...
透视上半年财政改革发展成效 新华社北京7月22日电 题:收支运行平稳 政策更加积极——透视上半年财政改革发展成效新华社记者申铖财...
伊朗称摧毁美军一套“萨德”、一... 新华社德黑兰7月23日电 伊朗伊斯兰革命卫队23日发布两份分别面向约旦和科威特民众的声明说,为回应美...
近40年来新低,日元迎来快速贬... 新华社东京7月23日电 国际观察|日元汇率缘何跌至近40年来新低新华社记者李诗萌 蓝建中近日,日元对...
稻城亚丁一游客疑因高反倒地抢救... 7月22日,四川稻城亚丁景区一名老年男性游客游玩时疑因高反抢救无效去世。7月23日,景区工作人员表示...