CN117714537B - 一种访问方法、装置、终端和存储介质 - Google Patents
一种访问方法、装置、终端和存储介质 Download PDFInfo
- Publication number
- CN117714537B CN117714537B CN202410167483.8A CN202410167483A CN117714537B CN 117714537 B CN117714537 B CN 117714537B CN 202410167483 A CN202410167483 A CN 202410167483A CN 117714537 B CN117714537 B CN 117714537B
- Authority
- CN
- China
- Prior art keywords
- agent
- candidate
- proxy
- access
- pool
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 239000003795 chemical substances by application Substances 0.000 claims description 366
- 238000004590 computer program Methods 0.000 claims description 24
- 239000011230 binding agent Substances 0.000 claims description 15
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 239000013543 active substance Substances 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001550 time effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6245—Modifications to standard FIFO or LIFO
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及计算机技术领域,提供了一种访问方法、装置、终端和存储介质,所述方法包括:获取访问任务,访问任务包括目标网站;从代理缓存队列出队一个候选代理,获取候选代理的被使用次数后,候选代理重新入队;其中,被使用次数包括当前使用候选代理的终端数量和当前使用候选代理访问目标网站的终端数量;若当前使用所述候选代理的终端数量和当前使用所述候选代理访问所述目标网站的终端数量均未超过其各自对应的阈值,则调用候选代理对应的代理服务器访问目标网站,且候选代理的被使用次数递增1。该方法能够提高代理访问效率。
Description
技术领域
本发明属于自然语言处理技术领域,尤其涉及一种访问方法、装置、终端和存储介质。
背景技术
随着互联网技术的飞速发展,代理服务器作为网络信息的中转站在实际应用中发挥着极其重要的作用。例如,通过代理服务器可以提高浏览速度、浏览效率,或者实现网络的安全过滤、流量控制等。
目前,代理平台所提供的代理服务器可以同时提供给多方使用,但由于很多网站为了确保其安全性,对于频繁多次的访问行为会进行一定的访问限制。因此,使用代理服务器进行网站代理访问非常容易受限,导致访问效率降低,进而影响实际业务的运行。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高代理访问效率确保实际业务运行的访问方法、装置、终端和存储介质。
本发明提供一种访问方法,包括:
获取访问任务,所述访问任务包括目标网站;
从代理缓存队列出队一个候选代理,获取所述候选代理的被使用次数后,所述候选代理重新入队;其中,所述被使用次数包括当前使用所述候选代理的终端数量和当前使用所述候选代理访问所述目标网站的终端数量;
若当前使用所述候选代理的终端数量和当前使用所述候选代理访问所述目标网站的终端数量均未超过其各自对应的阈值,则调用所述候选代理对应的代理服务器访问所述目标网站,且所述候选代理的所述被使用次数递增1。
进一步的,所述方法还包括:若当前使用所述候选代理的终端数量或当前使用所述候选代理访问所述目标网站的终端数量超过其对应的阈值,则重新从所述代理缓存队列出队一个候选代理。
进一步的,所述访问任务还包括代理池参数;所述方法还包括:根据所述代理池参数查询代理池,获取所述代理池对应的代理缓存队列;其中,所述代理池存放候选代理,所述代理缓存队列与所述代理池一一对应,所述代理缓存队列包括所述代理池中的候选代理。
进一步的,所述方法还包括:
根据代理平台所提供的代理时效,初始化定时任务线程池;其中,所述定时任务线程池包括定时任务线程,所述定时任务线程与所述代理平台相对应;
所述定时任务线程池中的所述定时任务线程,定时从对应的所述代理平台获取候选代理添加到所述代理缓存队列。
进一步的,所述定时任务线程池中的所述定时任务线程,定时从对应的所述代理平台获取候选代理添加到所述代理缓存队列,包括:
定时任务线程池中的所述定时任务线程,定时从对应的所述代理平台获取候选代理;
根据所述代理平台与代理池的绑定关系确定所述代理平台的绑定代理池;
将获取的候选代理存放到所述绑定代理池以及添加到所述绑定代理池对应的代理缓存队列。
进一步的,所述方法还包括:
接收所述候选代理对应代理服务器返回的代理结果;
根据所述代理结果进行代理上报,且所述候选代理的所述被使用次数递减1;其中,所述代理上报包括根据所述代理结果统计所述候选代理对应代理平台的代理次数和代理成功率。
进一步的,所述方法还包括:
若所述候选代理的代理时效过期,则重新从所述代理缓存队列出队一个候选代理。
本发明提供一种访问装置,包括:
获取模块,用于获取访问任务,所述访问任务包括目标网站;
代理选取模块,用于从代理缓存队列出队一个候选代理,获取所述候选代理的被使用次数后,所述候选代理重新入队;其中,所述被使用次数包括当前使用所述候选代理的终端数量和当前使用所述候选代理访问所述目标网站的终端数量;
代理访问模块,用于若当前使用所述候选代理的终端数量和当前使用所述候选代理访问所述目标网站的终端数量均未超过其各自对应的阈值,则调用所述候选代理对应的代理服务器访问所述目标网站,且所述候选代理的所述被使用次数递增1。
本发明还提供一种终端,所述终端包括处理器和存储器,所述存储器存储由计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的访问方法的步骤。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的访问方法的步骤。
上述访问方法、装置、终端和存储介质,以队列的形式存储代理平台所提供的候选代理,在对目标网站执行访问任务时,从代理缓存队列中出队一个候选代理,并在获取到该候选代理的被使用次数之后将其再重新入队,由此借助队列先进先出的特性实现一种轮询调度效果。同时,该方法获取到一个候选代理之后,只有在根据该候选代理被使用次数确定其使用未超过阈值时,才会真正调用该候选代理对应的代理服务对目标网站进行代理访问。由此,能够控制所选候选代理的访问次数,从而避免目标网站的访问限制,提高代理访问效率,确保实际业务有序运行。
附图说明
图1为一个实施例中访问方法的应用环境图。
图2为一个实施例中访问方法的流程示意图。
图3为一个实施例中Redis的hash数据类型示意图。
图4为另一个实施例中访问方法的流程示意图。
图5为一个实施例中添加代理的流程示意图。
图6为一个实施例中代理上报的流程示意图。
图7为一个实施例中访问装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本申请提供的访问方法,可以应用于如图1所示的应用环境中,该应用环境涉及终端102(运行Web浏览器)、代理服务器103和Web服务器104。
其中,终端102通过网络与代理服务器103进行通信,代理服务器103通过网络与Web服务器104进行通信。终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和携带式可穿戴设备。代理服务器103和Web服务器104均可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
当终端102执行访问任务时,从代理缓存队列出队一个候选代理,获取候选代理的被使用次数后,候选代理重新入队。其中,被使用次数包括当前使用候选代理的终端数量和当前使用候选代理访问目标网站的终端数量。然后,终端102若确定候选代理的被使用次数未超过阈值,则调用候选代理对应的代理服务器103,使用该代理服务器103作为终端102和Web服务器104的中转站,实现访问任务对应目标网站的访问。
下面以终端为例,对本申请实施例所提供的访问方法进行详细说明。
参考图2,示出了本申请实施例所提供的访问方法的流程示意图,包括步骤S201-S203:
S201,获取访问任务,访问任务包括目标网站。
具体的,访问任务指的是用户通过终端提供的操作界面所创建的对目标网站进行访问的访问任务。例如,访问任务具体可以是爬虫任务。其中,访问任务对应的目标网站可以是用于唯一表征网站的网站域名(domain name),具体可以根据实际业务设定,本申请实施例对此不作任何限定。
S202,从代理缓存队列出队一个候选代理,获取候选代理的被使用次数后,候选代理重新入队。
具体的,代理缓存队列是用于存储候选代理的缓存队列,候选代理是代理平台提供的可使用的代理,候选代理可以通过代理平台提供的应用程序编程接口(ApplicationProgramming Interface,API)定期从代理平台获取。在一些实施例中,代理缓存队列可以是Redis缓存队列。
可以理解的,代理缓存队列中的每一个候选代理对应一个代理服务器。因此,代理缓存队列中存储的候选队列具体可以是用于唯一表征代理服务器的标识号,例如代理服务器的ID、IP等,具体可以根据实际业务设定,本申请实施例对此不作任何限定。同时,一个代理缓存队列中可以同时存储不同代理平台提供的候选代理。
具体的,终端获取到需要执行目标网站访问的访问任务之后,从代理缓存队列出队一个候选代理(当前出队的候选代理是终端初步选择的用于代理访问目标网站的代理)。然后,终端获取这个候选代理的被使用次数,并在获取到这个候选代理的被使用次数之后,重新将这个候选代理入队。基于此,实现候选代理的轮询调度。
其中,被使用次数包括当前使用候选代理的终端数量(以下简称ipCC)和当前使用候选代理访问目标网站的终端数量(以下简称webCC)。由此可见,由于候选代理的被使用次数反映的是当前候选代理被终端使用的情况,所以可以理解为是一个瞬时参数,用于表征当前这个候选代理的被使用情况。
对于某个候选代理来说,其对应的webCC可以理解为:当前对于某个网站,有多少个终端使用这个候选代理正在访问该网站。例如,有一个候选代理IP为10.1.101.3:9857,访问的网站为网站A;若当前有三个正在执行爬虫任务的终端使用了10.1.101.3:9857访问这个网站A,那么这个候选代理10.1.101.3:9857对应网站A的webCC值为3;若当前有四个正在执行爬虫任务的终端使用了候选代理10.1.101.3:9857访问网站A,那么此时这个候选代理的webCC即为4。
对于某个候选代理来说,其对应的ipCC可以理解为:当前有多少个终端正在使用这个候选代理。简单来说,就是当前候选代理对应的webCC的总和。同样以候选代理IP为10.1.101.3:9857、访问的网站为网站A为例,若当前有两个终端使用这个候选代理访问网站A,则这个候选代理针对网站A的webCC值为2;若当前有三个终端使用这个候选代理访问网站B,这个候选代理针对网站B的webCC值为3。同理,这个候选代理针对网站C的webCC值为1,并且除了以上三个A、B、C网站之外没有其他终端正在使用该代理,那么该代理的ipCC值即为2+3+1=6。
另外,由于队列实行先进先出的原则,所以候选代理从代理缓存队列的队头出队,从代理缓存队列的队尾入队。
S203,判断被使用次数是否超过阈值,若超过,进入S204,若未超过,返回S202,重新从代理缓存队列出队一个候选代理;
S204,调用候选代理对应的代理服务器访问目标网站,且候选代理的被使用次数递增1。
在本申请实施例中,针对被使用次数预先设置一个阈值,由于被使用次数包括webCC和ipCC。所以,本申请实施例需要针对webCC设一个阈值,如果webCC超过了该阈值,那么该webCC对应的候选代理对于目标网站是不可用的,就需要重新从中代理缓存队列获取候选代理。在一些实施例中,webCC的实现可以通过Redis的hash数据类型,如图3所示。其中,Redis的Key是候选代理(图示代理1和代理2),hash的Filed是网站域名(图示有网站A、网站B和网站C的域名),hash的Value则是webCC的值。同时,本申请实施例针对ipCC也设置一个阈值。同样的,如果ipCC超过了对应的阈值,那么该候选代理对于目标网站同样是不可用的,就需要重新从代理缓存队列中获取代理。
具体来说,终端102从代理缓存队列弹出一个候选代理之后,根据这个候选代理的webCC对应的阈值和ipCC对应的阈值分别判断webCC和ipCC是否超过阈值。只要webCC和ipCC中有一个超过对应的阈值,则重新执行S202,直到从代理缓存队列中获取到同时满足webCC和ipCC不超过阈值这一条件的候选代理为止。
终端获取到满足条件的候选代理之后,即可调用该候选代理对应的代理服务器访问对应的目标网站。由于此时这个候选代理被本终端调用访问目标网站,所以相应的这个候选代理对应的被使用次数递增1。其中,针对目标网站的webCC,可以直接递增1。而对于ipCC,如果终端当前没有使用这个候选代理访问任何网站,那么ipCC可以递增1。如果终端当前有使用这个候选代理访问其他网站,表示这个候选代理是已经被本终端所使用的状态,即ipCC在之前应该已经递增过,则此次的递增处理不包括ipCC的递增,ipCC维持现状。也就是说,候选代理的被使用次数递增1有两种情况,一种是webCC和ipCC同时递增1,另一种是只有webCC递增1。
上述访问方法,以队列的形式存储代理平台所提供的候选代理,在对目标网站执行访问任务时,从代理缓存队列中出队一个候选代理。并在获取到该候选代理的被使用次数之后将其再重新入队,由此借助队列先进先出的特性实现一种轮询调度效果。同时,该方法获取到一个候选代理之后,只有在根据该候选代理被使用次数确定其使用未超过阈值时,才会真正调用该候选代理对应的代理服务对目标网站进行代理访问。由此,能够控制所选候选代理的访问次数,从而避免目标网站的访问限制,提高代理访问效率,确保实际业务有序运行。
在一些实施例中,可以通过建立代理池存放候选代理。其中,代理池可以通过Redis的list类型实现,其属性信息可以通过MySQL存储;候选代理由代理平台提供。
在本申请实施例中,每个代理池对应一个代理缓存队列,也就是说,每个代理池内存放的候选代理对应添加到一个代理缓存队列中。同时,一个代理池中可以存放多个代理平台提供的候选代理,一个代理平台的所提供的候选代理也可以存放在多个不同的代理池中。总的来说,代理池与代理平台是多对多的关系。
在本申请实施例中,用户在创建访问任务时可以根据实际需求自主选择相应的代理池,进而使用所选代理池中的候选代理。即,访问任务与代理池可以是一对一的关系。
终端可以通过访问任务中携带的代理池参数,查询该访问任务对应的代理池,从而确定该访问任务对应的候选代理。因此,用户创建的访问任务还可以包括代理池参数。
参考图4,终端执行本申请实施例所提供的访问方法时,还包括:根据代理池参数查询代理池,获取代理池对应的代理缓存队列。
在本申请实施例中,通过引入代理池,使得代理池与代理平台的关系是人为可控的。也就是说,当用户只想用某个或者某几个代理平台提供的候选代理时,只需新建一个代理池,并将该代理池绑定想要用的代理平台,获取代理时只需指定这个代理池即可,从而使得候选代理的选择更加灵活,更加符合实际业务需求,能够精确选择对应的代理平台。
在一些实施例中,由于代理平台提供的候选代理通常都是有时效性的,所以为了保证获取到的候选代理都是最新可用的,终端需要持续通过代理平台提供的接口API从代理平台获取候选代理。即,访问方法还包括添加代理。
基于此,访问方法还可以包括:根据代理平台所提供的代理时效,初始化定时任务线程池;定时任务线程池中的定时任务线程,定时从对应的代理平台获取候选代理添加到代理缓存队列。
在本申请实施例中,定时任务线程池中包括与代理平台相对应的定时任务线程。即,定时任务线程与代理平台一一对应,所执行的定时任务是定时从这个对应的代理平台获取候选代理。其中,定时任务线程池可以是Java中的一个线程池类,例如ScheduledThreadPoolExecutor,它继承自ThreadPoolExecutor,并且具有定时执行任务的能力,可以用它来执行定时任务。
初始化定时任务线程池是指:终端设置定时任务线程池执行任务的频率,即多久执行一次任务,也就是定时任务的执行周期。在本申请实施例中,由于定时任务线程与代理平台一一对应,所以这个频率与代理平台的提供的代理时效相同。代理时效可以理解为是代理平台的信息的一个属性值,用于表征其所提供的候选代理的时效。在一些实施例中,代理平台的信息可以存储到MySQL中。
在一些实施例中,如果引用代理池存放候选代理,那么定时任务线程池中的定时任务线程,定时从对应的代理平台获取候选代理添加到代理缓存队列,具体包括:定时任务线程池中的定时任务线程,定时从对应的代理平台获取候选代理;根据代理平台与代理池的绑定关系,确定代理平台的绑定代理池;将获取的候选代理存放到绑定代理池,以及添加到绑定代理池对应的代理缓存队列中。
添加代理可以参考图5所示的流程图,具体来说,终端查询保存在本地的代理平台信息表中所有在用的代理平台;终端遍历所用在用的代理平台,将代理平台信息中的代理时效视为定时任务的执行频率,初始化包括与各个代理平台相对应的定时任务线程的定时任务线程池;然后,定时任务线程池中的定时任务线程基于各自的执行频率,定时调用对应的代理平台提供的API从这个代理平台获取候选代理;终端从代理平台获取到候选代理之后,查询这个代理平台所绑定的所有代理池,即根据代理平台与代理池的绑定关系,确定代理平台绑定代理池;最后,终端根据查询到的绑定代理池,确定对应的代理缓存队列;将代理平台提供的候选代理存放到绑定代理池,并添加到这个绑定代理池对应的代理缓存队列中。可以理解的,一次定时任务执行完成后,等待下次重复执行(即图5所示虚线箭头中的定时执行)。
在本申请实施例中,启动定时任务不再使用传统的@Scheduled注解的方式,而是采用线程池。其中,@Scheduled是Spring框架中的注解,用于在特定时间间隔内执行方法或任务。传统使用注解的方式意味着,一个定时任务需要一个方法,而每个代理平台提供代理时效一般无法统一,所以每个代理平台对应的定时任务执行频率是不一样的,这样就会导致每个代理平台都要有各自对应的定时任务。即,每个代理平台都要有与之对应的方法。这样就使得代理平台与代码的耦合度很高,当代理平台发生变动时(新增、删除等),要修改对应的代码,并重启程序才能实现代理平台的更新,效率低下。本申请通过代理平台的参数(例如代理时效)初始化线程池进而启动定时任务,可实现代理平台与代码的解耦合。即使代理平台发生修改,只需关闭定时任务或者初始化一个线程池即可,无需再修改代码及重启程序,效率明显提高。
在一些实施例中,本申请实施例所提供的访问方法还包括:接收候选代理对应代理服务器返回的代理结果;根据代理结果进行代理上报,且候选代理的被使用次数递减1;其中,代理上报包括根据代理结果统计候选代理对应代理平台的代理次数和代理成功率。
其中,代理平台的代理次数是终端使用这个代理平台所提供的候选代理的使用次数。而代理平台的代理成功率则通过记录这个代理平台所提供的候选代理的使用次数与使用成功次数(即代理成功次数)计算得到。即,代理上报时,无论候选代理是否使用成功,对应代理平台的代理次数都递增1(代理平台的代理次数加1);只有候选代理使用成功的情况下,代理平台的代理成功次数才递增1;最后,通过除法运算计算得到这个代理平台的代理成功率。
具体来说,参考图6所示的流程图,终端通过调用候选代理对应的代理服务器进行目标网站的访问后,接收这个候选代理对应的代理服务器的代理结果,其中代理结果用于表征是否访问成功;然后,终端上传这个候选代理、目标网站、候选代理对应代理平台的信息、以及上述代理结果等参数,调用代理上报接口进行代理上报,根据上报的参数计算并修改对应代理平台的代理次数和代理成功率,其中上报的参数可以写入mongoDB保存;最后,终端对当前进行代理上报的这个候选代理对应的使用次数递减1。即,将这个候选代理针对目标网站的webCC值减1。如果终端调用的这个候选代理结束对目标网站的访问后,终端没有调用这个候选代理访问其他网站,则ipCC也递减1;如果终端调用的这个候选代理结束对目标网站的访问后,终端当前还有调用这个候选代理访问其他网站,则ipCC维持不变。
在一些实施例中,代理平台的代理次数与代理成功次数可以借助Redis的hash类型实现。也就是说,Redis的Key是代理平台,可用于唯一表示代理平台的标识符,hash的Filed是网站总数或者成功数,hash的Value对应的就是代理次数和代理成功率这两个值。
在本申请实施例中,通过代理上报可以统计不同代理平台的代理质量,从而为后续选择候选代理做参考。同时,通过代理上报对候选代理的使用次数(webCC和ipCC)进行递减操作,可以防止使用次数(webCC和ipCC)只有加一操作,从而确保使用次数(webCC和ipCC)的准确性。
应该理解的是,虽然图2、4-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、4-6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供一种访问装置,包括:
获取模块701,用于获取访问任务,访问任务包括目标网站。
代理选取模块702,用于从代理缓存队列出队一个候选代理,获取候选代理的被使用次数后,候选代理重新入队;其中,被使用次数包括当前使用候选代理的终端数量和当前使用候选代理访问目标网站的终端数量。
代理访问模块703,用于若被使用次数未超过阈值,则调用候选代理对应的代理服务器访问目标网站,且候选代理的被使用次数递增1。
在一个实施例中,代理选取模块702还用于若被使用次数超过阈值,则重新从代理缓存队列出队一个候选代理。
在一个实施例中,访问任务还包括代理池参数。访问装置还包括队列确定模块,用于根据代理池参数查询代理池,获取代理池对应的代理缓存队列;其中,代理池存放候选代理,代理缓存队列与代理池一一对应,代理缓存队列包括代理池中的候选代理。
在一个实施例中,访问装置还包括代理添加模块,用于根据代理平台所提供的代理时效,初始化定时任务线程池;其中,定时任务线程池包括定时任务线程,定时任务线程与代理平台相对应;定时任务线程池中的定时任务线程,定时从对应的代理平台获取候选代理添加到代理缓存队列。
在一个实施例中,代理添加模块还用于定时任务线程池中的定时任务线程,定时从对应的代理平台获取候选代理;根据代理平台与代理池的绑定关系确定代理平台的绑定代理池;将获取的候选代理存放到绑定代理池以及添加到绑定代理池对应的代理缓存队列。
在一个实施例中,访问装置还包括代理上报模块,用于接收候选代理对应代理服务器返回的代理结果;根据代理结果进行代理上报,且候选代理的被使用次数递减1;其中,代理上报包括根据代理结果统计候选代理对应代理平台的代理次数和代理成功率。
在一个实施例中,代理选取模块702还用于若候选代理的代理时效过期,则重新从代理缓存队列出队一个候选代理。
关于访问装置的具体限定可以参见上文中对于访问方法的限定,在此不再赘述。上述访问装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以以硬件形式内嵌于或独立于终端中的处理器中,也可以以软件形式存储于终端中的存储器中,以便于处理器调用执行以上各个模块对应的操作。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个访问方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。
在一个实施例中,提供一种终端,包括处理器,存储器和网络接口。其中,该终端的处理器用于提供计算和控制能力。该终端的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该终端的数据库用于存储数据。该终端的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种访问方法。
示例性的,计算机程序可以被分割成一个或多个模块,一个或者多个模块被存储在存储器中,并由处理器执行以完成本发明。一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机装置中的执行过程。
所称处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机装置的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card, SMC),安全数字(Secure Digital, SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本领域技术人员可以理解,本实施例中所示出的终端结构,仅仅是与本发明方案相关的部分结构,并不构成对本发明所应用于其上的终端的限定,具体的终端可以包括更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种终端,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述任一实施例所记载的访问方法。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一实施例所记载的访问方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种访问方法,其特征在于,包括:
获取访问任务,所述访问任务包括目标网站;
从代理缓存队列出队一个候选代理,获取所述候选代理的被使用次数后,所述候选代理重新入队;其中,所述被使用次数包括当前使用所述候选代理的终端数量和当前使用所述候选代理访问所述目标网站的终端数量;
若当前使用所述候选代理的终端数量和当前使用所述候选代理访问所述目标网站的终端数量均未超过其各自对应的阈值,则调用所述候选代理对应的代理服务器访问所述目标网站,且所述候选代理的所述被使用次数递增1。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:若当前使用所述候选代理的终端数量或当前使用所述候选代理访问所述目标网站的终端数量超过其对应的阈值,则重新从所述代理缓存队列出队一个候选代理。
3.根据权利要求1所述的方法,其特征在于,所述访问任务还包括代理池参数;所述方法还包括:根据所述代理池参数查询代理池,获取所述代理池对应的代理缓存队列;其中,所述代理池存放候选代理,所述代理缓存队列与所述代理池一一对应,所述代理缓存队列包括所述代理池中的候选代理。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
根据代理平台所提供的代理时效,初始化定时任务线程池;其中,所述定时任务线程池包括定时任务线程,所述定时任务线程与所述代理平台相对应;
所述定时任务线程池中的所述定时任务线程,定时从对应的所述代理平台获取候选代理添加到所述代理缓存队列。
5.根据权利要求4所述的方法,其特征在于,所述定时任务线程池中的所述定时任务线程,定时从对应的所述代理平台获取候选代理添加到所述代理缓存队列,包括:
定时任务线程池中的所述定时任务线程,定时从对应的所述代理平台获取候选代理;
根据所述代理平台与代理池的绑定关系确定所述代理平台的绑定代理池;
将获取的候选代理存放到所述绑定代理池以及添加到所述绑定代理池对应的代理缓存队列。
6.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
接收所述候选代理对应代理服务器返回的代理结果;
根据所述代理结果进行代理上报,且所述候选代理的所述被使用次数递减1;其中,所述代理上报包括根据所述代理结果统计所述候选代理对应代理平台的代理次数和代理成功率。
7.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
若所述候选代理的代理时效过期,则重新从所述代理缓存队列出队一个候选代理。
8.一种访问装置,其特征在于,包括:
获取模块,用于获取访问任务,所述访问任务包括目标网站;
代理选取模块,用于从代理缓存队列出队一个候选代理,获取所述候选代理的被使用次数后,所述候选代理重新入队;其中,所述被使用次数包括当前使用所述候选代理的终端数量和当前使用所述候选代理访问所述目标网站的终端数量;
代理访问模块,用于若当前使用所述候选代理的终端数量和当前使用所述候选代理访问所述目标网站的终端数量均未超过其各自对应的阈值,则调用所述候选代理对应的代理服务器访问所述目标网站,且所述候选代理的所述被使用次数递增1。
9.一种终端,包括处理器和存储器,所述存储器存储有计算机程序,其特征在于,所述处理器用于执行所述计算机程序时实现权利要求1-7中任意一项所述的访问方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任意一项所述的访问方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410167483.8A CN117714537B (zh) | 2024-02-06 | 2024-02-06 | 一种访问方法、装置、终端和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410167483.8A CN117714537B (zh) | 2024-02-06 | 2024-02-06 | 一种访问方法、装置、终端和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117714537A CN117714537A (zh) | 2024-03-15 |
CN117714537B true CN117714537B (zh) | 2024-04-16 |
Family
ID=90150188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410167483.8A Active CN117714537B (zh) | 2024-02-06 | 2024-02-06 | 一种访问方法、装置、终端和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117714537B (zh) |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991810A (en) * | 1997-08-01 | 1999-11-23 | Novell, Inc. | User name authentication for gateway clients accessing a proxy cache server |
WO2000019682A1 (en) * | 1998-09-25 | 2000-04-06 | Sun Microsystems, Inc. | An apparatus and method for improving performance of proxy arrays that use persistent connections |
WO2014029303A1 (en) * | 2012-08-22 | 2014-02-27 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for configuring proxy server |
CN103902386A (zh) * | 2014-04-11 | 2014-07-02 | 复旦大学 | 一种基于连接代理优化管理的多线程网络爬虫处理方法 |
CN104092660A (zh) * | 2014-06-09 | 2014-10-08 | 武汉传神信息技术有限公司 | 一种访问网络站点的方法 |
CN105721631A (zh) * | 2016-03-28 | 2016-06-29 | 中国科学院信息工程研究所 | 一种定向信息抓取场景中大规模ip地址资源使用方法 |
CN105988879A (zh) * | 2015-03-20 | 2016-10-05 | 国际商业机器公司 | 用于优化多任务处理服务器的分配的方法和系统 |
CN109274782A (zh) * | 2018-08-24 | 2019-01-25 | 北京创鑫旅程网络技术有限公司 | 一种采集网站数据的方法及装置 |
CN109508422A (zh) * | 2018-12-05 | 2019-03-22 | 南京邮电大学 | 多线程智能调度的高匿爬虫系统 |
CN110062025A (zh) * | 2019-03-14 | 2019-07-26 | 深圳绿米联创科技有限公司 | 数据采集的方法、装置、服务器及存储介质 |
CN111277662A (zh) * | 2020-01-22 | 2020-06-12 | 咪咕文化科技有限公司 | 代理服务器的处理方法、电子设备及存储介质 |
CN111460256A (zh) * | 2020-03-26 | 2020-07-28 | 深圳壹账通智能科技有限公司 | 网页数据的爬取方法、装置、计算机设备和存储介质 |
CN111460254A (zh) * | 2020-03-24 | 2020-07-28 | 南阳柯丽尔科技有限公司 | 一种基于多线程的网页爬取方法、装置、存储介质及设备 |
CN112115016A (zh) * | 2020-08-06 | 2020-12-22 | 北京健康之家科技有限公司 | 应用性能监控系统 |
CN112583780A (zh) * | 2019-09-30 | 2021-03-30 | 北京国双科技有限公司 | 使用代理ip访问网站数据的方法、装置、系统和设备 |
CN113282395A (zh) * | 2021-06-09 | 2021-08-20 | 中国农业银行股份有限公司 | 基于Redis的作业请求调度方法、装置、设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060031520A1 (en) * | 2004-05-06 | 2006-02-09 | Motorola, Inc. | Allocation of common persistent connections through proxies |
-
2024
- 2024-02-06 CN CN202410167483.8A patent/CN117714537B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991810A (en) * | 1997-08-01 | 1999-11-23 | Novell, Inc. | User name authentication for gateway clients accessing a proxy cache server |
WO2000019682A1 (en) * | 1998-09-25 | 2000-04-06 | Sun Microsystems, Inc. | An apparatus and method for improving performance of proxy arrays that use persistent connections |
WO2014029303A1 (en) * | 2012-08-22 | 2014-02-27 | Tencent Technology (Shenzhen) Company Limited | Method and apparatus for configuring proxy server |
CN103902386A (zh) * | 2014-04-11 | 2014-07-02 | 复旦大学 | 一种基于连接代理优化管理的多线程网络爬虫处理方法 |
CN104092660A (zh) * | 2014-06-09 | 2014-10-08 | 武汉传神信息技术有限公司 | 一种访问网络站点的方法 |
CN105988879A (zh) * | 2015-03-20 | 2016-10-05 | 国际商业机器公司 | 用于优化多任务处理服务器的分配的方法和系统 |
CN105721631A (zh) * | 2016-03-28 | 2016-06-29 | 中国科学院信息工程研究所 | 一种定向信息抓取场景中大规模ip地址资源使用方法 |
CN109274782A (zh) * | 2018-08-24 | 2019-01-25 | 北京创鑫旅程网络技术有限公司 | 一种采集网站数据的方法及装置 |
CN109508422A (zh) * | 2018-12-05 | 2019-03-22 | 南京邮电大学 | 多线程智能调度的高匿爬虫系统 |
CN110062025A (zh) * | 2019-03-14 | 2019-07-26 | 深圳绿米联创科技有限公司 | 数据采集的方法、装置、服务器及存储介质 |
CN112583780A (zh) * | 2019-09-30 | 2021-03-30 | 北京国双科技有限公司 | 使用代理ip访问网站数据的方法、装置、系统和设备 |
CN111277662A (zh) * | 2020-01-22 | 2020-06-12 | 咪咕文化科技有限公司 | 代理服务器的处理方法、电子设备及存储介质 |
CN111460254A (zh) * | 2020-03-24 | 2020-07-28 | 南阳柯丽尔科技有限公司 | 一种基于多线程的网页爬取方法、装置、存储介质及设备 |
CN111460256A (zh) * | 2020-03-26 | 2020-07-28 | 深圳壹账通智能科技有限公司 | 网页数据的爬取方法、装置、计算机设备和存储介质 |
CN112115016A (zh) * | 2020-08-06 | 2020-12-22 | 北京健康之家科技有限公司 | 应用性能监控系统 |
CN113282395A (zh) * | 2021-06-09 | 2021-08-20 | 中国农业银行股份有限公司 | 基于Redis的作业请求调度方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117714537A (zh) | 2024-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10320623B2 (en) | Techniques for tracking resource usage statistics per transaction across multiple layers of protocols | |
CN109842621A (zh) | 一种减少token存储数量的方法及终端 | |
CN108536544B (zh) | 基于数据库消息队列的消费方法、装置、服务器和介质 | |
CN108228322B (zh) | 一种分布式链路跟踪、分析方法及服务器、全局调度器 | |
CN111367948B (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN111367873A (zh) | 日志数据的存储方法、装置、终端及计算机存储介质 | |
CN111914007A (zh) | 一种hadoop集群运行ETL流程的方法及装置 | |
US8510426B2 (en) | Communication and coordination between web services in a cloud-based computing environment | |
CN107241446B (zh) | 应用程序的文件传输方法、装置和终端设备及存储介质 | |
CN117714537B (zh) | 一种访问方法、装置、终端和存储介质 | |
CN114218135A (zh) | 一种基于Redis缓存的源端流控方法及系统 | |
US9659041B2 (en) | Model for capturing audit trail data with reduced probability of loss of critical data | |
CN114915652B (zh) | 一种消息推送方法、装置、电子设备及存储介质 | |
US10572531B1 (en) | Predictive session-based search engine | |
CN113726838B (zh) | 文件传输方法、装置、设备及存储介质 | |
CN116341508A (zh) | 报文模板的动态配置方法、装置、计算机设备及存储介质 | |
CN116974730B (zh) | 一种大批量任务处理方法 | |
CN115733833B (zh) | 文件分时下载方法、装置、计算机设备和存储介质 | |
CN116932779B (zh) | 知识图谱的数据处理方法和装置 | |
CN115665074B (zh) | 消息限流发送方法、装置、设备及存储介质 | |
CN115604667B (zh) | 消息发送方法、装置、计算机设备和存储介质 | |
CN113704274B (zh) | 一种数据的读取方法及电子设备 | |
WO2024016766A9 (zh) | 交易处理方法、装置、设备、存储介质和程序产品 | |
CN116610429A (zh) | 延时任务的处理方法、装置、计算机设备、存储介质 | |
US10140150B2 (en) | Thread diversion awaiting log call return |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |