github_crawler测试

项目背景

爬取github上awssome-java这个项目中所提到的一些上榜项目,分析这项目的活跃程度(start,fork,open_issue)。实现一个类似于”github趋势”的功能。

核心流程

通过程序抓取awesome-java中所有上榜项目内容,解析之后存储到数据库,然后进行数据分析,以柱状图的形式展示在页面中,依此来分析项目活跃程度。

模块划分

1.抓取模块:获取服务器上的网页内容

预期实际分析
抓取github上awssome-java这个项目中的上榜项目网页中的URL都被提取出来模块功能正常

2.分析模块:分析网页内容,解析出需要的数据

预期实际分析
获取到每个项目的start数,fork数,opened_issue数成功获取模块功能正常

3.存储模块:存储数据到数据库中

预期实际分析
抓取数据,保存到数据库中测试出现异常当前url对应的不是一个github的项目,为了不影响后面的抓取,用try catch把抓取的循环包裹起来。

性能优化:
通过打印每个环节的时间,先找到性能瓶颈。

获取页面入口获取项目列表解析所有项目时间存取数据库时间整个项目总时间
3s0.4s130s4s138s

得出性能最差的是循环调用Github API。所以引入多线程的方式来实现批量发送数据

1个线程5个线程10个线程15个线程20个线程100个线程
138秒38秒22秒18秒13秒9秒

经过测试我们选择20个线程。
4.展示模块:通过一个网页来展示这些抓取到数据的图表信息。

预期实际分析
获取到数据,展示图表成功获取模块功能正常

在这里插入图片描述

总结

经过测试,可以正常获取github上awssome-java这个项目中的上榜项目,并且将项目根据活跃程度(start,fork,open_issue)展示出柱状图。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值