[发明专利]一种基于请求成功率的自适应休眠时间调节方法有效
申请号: | 201910475839.3 | 申请日: | 2019-06-03 |
公开(公告)号: | CN110209911B | 公开(公告)日: | 2023-03-28 |
发明(设计)人: | 覃琴;王鑫;江旭华;石宁波 | 申请(专利权)人: | 桂林电子科技大学 |
主分类号: | G06F16/951 | 分类号: | G06F16/951 |
代理公司: | 桂林市华杰专利商标事务所有限责任公司 45112 | 代理人: | 刘梅芳 |
地址: | 541004 广西*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于请求成功率的自适应休眠时间调节方法,包括如下步骤:1)检查1个周期内success和fail的和是否为10;2)计算请求周期成功率;3)计算该周期花费的时间;4)计算该周期的每个成功请求所花费的时间;5)将lastKey和lastVal记录为第一个请求周期的休眠时间值以及平均时间,然后将下一个请求周期的休眠时间设置为第一个请求周期休眠时间减gap毫秒,第一个请求周期结束,返回到步骤1);6)与第N‑1个周期比较;7)更新lastKey和lastVal,同时更新lastKey和lastVal,返回到步骤1);8)将下一个N+1周期的休眠时间设置为N‑1的休眠时间加gap毫秒,将lastVal记录为第N‑1个周期的休眠时间,本周期结束,返回到步骤1);9)继续运行。这种方法能提高爬虫运行的效率。 | ||
搜索关键词: | 一种 基于 请求 成功率 自适应 休眠 时间 调节 方法 | ||
【主权项】:
1.一种基于请求成功率的自适应休眠时间调节方法,其特征是,包括如下步骤:1)在爬虫每完成一次请求时,检查success和fail的和是否为10,如果是,继续到步骤2),如果不是,转到步骤9),其中,success为爬虫某个请求周期请求成功的次数,fail为爬虫某个请求周期请求被反爬的次数,所述的请求周期定义为:每发起10个HTTP请求为1个周期;2)计算请求周期成功率:所述请求周期的成功率定义为:用户发起HTTP请求时,目标服务器返回期待的HTML文档的个数为X,那么本周期的请求成功率则为x÷周期发起的HTTP请求数,也就是计算success除以10的结果,结果记为p,继续到步骤3);3)计算该周期花费的时间:该周期花费的时间为sleepTime×10的结果,结果记为sum,继续到步骤4),其中,sleepTime为当前周期间隔时间;4)计算该周期的每个成功请求所花费的时间:该周期的每个成功请求所花费的时间即sum÷success的结果,结果记为spendTime,继续到步骤5);5)如在第一个请求周期内,将lastKey和lastVal记录为第一个请求周期的休眠时间值以及平均时间,然后将下一个请求周期的休眠时间设置为第一个请求周期休眠时间减gap毫秒,第一个请求周期结束,返回到步骤1),其中,lastKey为上一周期的间隔时间,lastVal为上一周期请求成功的平均所需时间,其中,gap为时间增量;6)如果是第N个请求周期,则与上一个周期的spendTime进行比较,即与第N‑1个周期比较,比较过程见步骤8);7)如果第N个请求周期的效率值spendTime小于或等于第N‑1个周期的平均时间,则该次自适应调节优化成功,更新lastKey和lastVal,将下一个N+1周期的休眠时间设置为第N个周期休眠时间减gap毫秒,同时更新lastKey和lastVal,本周期结束,返回到步骤1),其中,gap为时间增量;8)如果第N个周期的效率值spendTime大于第N‑1个周期的平均时间,则该次自适应调节优化失败,需要回退到上一个周期的休眠时间,即将下一个N+1周期的休眠时间设置为N‑1的休眠时间加gap毫秒,将lastVal记录为第N‑1个周期的休眠时间,本周期结束,返回到步骤1),其中,gap为时间增量;9)如果success和fail的和小于10,表明在处于请求周期未完成阶段,继续运行。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于桂林电子科技大学,未经桂林电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910475839.3/,转载请声明来源钻瓜专利网。