go 爬取hyCrawler 项目总结

  1. 自下而上开始写,好处就是调试方便,很容易把 demo 跑起来。但是缺点就是缺乏自上而下那种顶层设计,留下的问题只有到几个模块拼接起来用时才会发现。

这次使用 redis,好处就是做一些缓存,真心非常爽,把一些东西直接丢进去就好了。但是坏处就是使用 hash,一个网址是否被爬过,被爬过几次,是否存储成功,这些都各需要一个hash。甚至都不能把网址作为key值来存储,因为网址的domain 会发生改变。

这样比较起来,就会看出 mysql 的好处,这些数据完全是表中的一条记录,如果使用 mysql 一条 sql 就可以把所有的状态全部都提取出来。

  1. 没有构造函数。结构体初始化时,应该使用 newXX 的方法,我后面才看到,这时候我写的代码结构已经比较混乱了。

  2. 错误队列里面放什么我没考虑清楚,最初我想的是把失败的url放进去以便后期重复抓取,但是现在去看的时候发现里面既有url视频地址还有 page 搜索页的地址。

  3. 我本想把一些基础的东西给抽象成模块,以便在其他的项目中复用,但是我写来写去都是 main 包,我觉得这么写是非常不妥当的。

  4. 使用 redis 存储时,存储一个json 是最妥当的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 32,048评论 2 89
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 若你这般温柔地握住我的手,是因为我掌中所有茧的记忆,你能懂。致毕业27年的妈咪。 记忆,你是老师的温柔脸旁;记忆,...
    6897e1c6fd79阅读 231评论 0 0
  • 夜幕降临,黑夜逐渐吞噬繁华都市的喧嚣。住宅区的灯一盏盏的被点亮,灯光从窗户透出来,迷迷蒙蒙,诉说着一个个故事。或喜...
    岩竹阅读 195评论 1 4
  • 蓝湾是很老的店了。感觉每一家都很土而且不专业不精致,强弩之末的感觉。这个咖啡做的也太不专业了。
    菠00阅读 192评论 0 0