Go并发异步请求秀动抢票

继上次python请求秀动接口,这次我将采用性能最佳的Go语言重构,(tips:因分享了太多人,有人以此向外获利,所以停止分享)

之前采用python异步请求,三次请求购票接口的思路。鉴于秀动app的防护措施愈来愈强,我将采用发挥go语言的协程的最大功效。

(1)思路1:

通过第一个协程请求第一个api,请求完之后,得到的response通过chan管道到协程并发的second api,与之前不同的是第二个api接口的请求有着多个协程的并发任务,一旦第二个协程得到这个任务,立马执行,执行完之后,通过chan2管道传到第三个api接口中的并发任务。这样就避免了I/O堵塞的问题。

但是在第二个接口如何知道第一个接口已经执行完,第二个接口已经执行完返回的response能够在短时间内被利用呢?毫无疑问,设置监控器。这里就用到了chatgpt给我的回复:

chatgpt提供的办法是通过select的方法,进行实时的监控第一个协程是否已经执行完,已经有数据到了管道,因此用到这个方法,我们可以进行实战,其也是可以进行的,但是其会出现资源的损耗,在堵塞过程中,其进行的是条件的筛选。

因此进行第二个思路的思考。

(2)思路二:因为无限个协程并发始终会造成资源消耗和死锁的情况。

因此我们需要控制协程的并发数:

统计协程的个数,最终控制并发量,达到一种程序的效率的最大值,测试得到在协程数控制在20时,我们的系统资源会被完全利用,并且并发的出现的堵塞情况也会减少。

于是基于此,我将采用该方式进行代码的编写。

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

(1)因为go语言需要包的支撑,按照go语言的规范,第一步数据模型定义

(2)爬虫当然少不了代理

(3)直接请求三大接口

(4)展示数据模型:

因为在我的上一个文章中已经讲了如何去请求接口及相关方法,这里就不再重复,仅提供用go语言实现最大的效率请求接口的方式。

拿最近的《城市客厅》南京场次做测试:

可以看到能够稳定拿下。返回的数据为:

好了,大功告成。

有任何问题可联系我,(以上代码及分析均为本人原创)

  • 9
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NorthGo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值