IP Library Granted Patent US 10,601,948
Granted Patent B1
US 10,601,948 · App. 16/669,149 · Granted Mar 24, 2020

Smart proxy rotator

Inventors: Martynas Juravicius (N. Utos eldership, LT); Eivydas Vilcinskas (Siauliai, LT)
Assignee: metacluster lt, UAB
H04L67/288H04L41/14H04L63/0428H04L67/02H04L67/141
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,601,948
App. No.
16/669,149
Granted
Mar 24, 2020
Kind
B1
Abstract

The task, logic of HTTP/HTTPS session statistics interception and collection is moved to the client side instead of the proxy layer. Encrypted HTTPS tunnel is terminated at the client end, making the actual content or data in transit invisible to both proxies and the smart proxy rotator (SPR). Client's scraping software has a plug-in installed that expands its functionality. HTTP/HTTPS session quality metrics are intercepted and collected at the client side, then sent to the SPR. Proxy usage mark “can be used” is obtained from the SPR for the currently analyzed proxy, based on the results of metrics analysis.

Claims (33)

1. A computer-implemented method for dynamically configuring a utilization threshold of a proxy provider, the method comprising:

running a smart proxy rotator (SPR) on a computing device connected to a network;

obtaining a proxy from the SPR, according to currently valid SPR operational settings, by a Web Scraper to use for a request for content;

establishing, by the Web Scraper, an encrypted connection to a target server through the proxy;

requesting and obtaining the content designated within the request, through the encrypted connection, by the Web Scraper;

providing, by the Web Scraper, performance and availability information of the proxy to the SPR;

calculating, at the SPR, a weight for the proxy provider; and

dynamically configuring utilization threshold of the proxy provider based on the calculation.

2. The method of claim 1 , wherein the Web Scraper accumulates the performance and availability information from a plurality of proxies before providing the information to the SPR.

3. The method of claim 1 , wherein proxy providers' weights are calculated by the SPR based on the evaluation of performance and availability information from at least one proxy belonging to the proxy provider.

4. The method of claim 1 further comprising dynamically configuring utilization threshold of the proxy provider based on the weight calculations.

5. The method of claim 1 , wherein the SPR periodically calculates and configures the proxy provider weight according to the proxy performance and availability information submitted by the Web Scraper at any configured period of time.

6. The method of claim 1 , wherein the SPR stops using a maximized proxy provider, at least for a period of time, when at least one configured maximum threshold is reached.

7. The method of claim 1 , wherein the performance and availability information collected include, but are not limited to: proxy id, proxy status, proxy response time, and a size of data obtained through the proxy.

8. The method of claim 1 , wherein SPR operational settings, such as proxy provider settings, utilization thresholds, error thresholds and proxy lists, are loaded into a database on disk, a flat file on disk, a database in memory, or other storage media.

9. The method of claim 1 , wherein the SPR can be placed within a client's network, proxy service provider's network, or a party providing proxy rotation services.

10. A non-transitory computer readable medium computer medium for dynamically configuring a utilization threshold of a proxy provider comprising instructions which, when executed by a computing device, causes the computing device to:

provide a Web Scraper with a proxy from a proxy provider list;

accumulate performance and availability information about the proxy provided by the Web Scraper after the proxy has been used to obtain content from a target, wherein the content is unreadable to a Smart Proxy Rotator (SPR) due to network transport layer or application layer encryption;

calculate and configure utilization thresholds of a plurality of proxy providers by evaluating proxy performance and availability information received from the Web Scraper.

11. The non-transitory computer-readable medium of claim 10 , wherein the proxy provider's utilization threshold is periodically reconfigured according to the performance and availability information provided by the Web Scraper.

12. The non-transitory computer-readable medium of claim 10 , wherein proxy providers' weights are periodically calculated and configured according to the proxy performance and availability information submitted by the Web Scraper at any configured period of time.

13. The non-transitory computer-readable medium of claim 10 , wherein usage of the proxy provider is placed on hold, at least for a period of time, when at least one configured maximum threshold is reached.

14. The non-transitory computer-readable medium of claim 10 , wherein the performance and availability information collected include, but are not limited to: proxy id, proxy status, proxy response time, and a size of data obtained through the proxy.

15. The non-transitory computer-readable medium of claim 10 , wherein operational settings, such as proxy provider settings, utilization thresholds, error thresholds and proxy lists, are loaded into a database on disk, a flat file on disk, a database in memory, or other storage media.

16. The non-transitory computer-readable medium of claim 10 , wherein the computing device executing the program can be placed within a client's network, proxy service provider's network, or any other network.

17. A system comprising:

a Smart Proxy Rotator (SPR) operable to provide a plurality of proxies over a network; and

a Web Scraper operable to obtain a first proxy of the plurality of proxies from the SPR according to currently valid SPR operational settings, to establish an encrypted connection with the target server through the first proxy, to request content from a target server, to receive the content designated within the request through the encrypted connection, and to provide performance and availability information of the first proxy to the SPR,

wherein the SPR is operable to calculate a weight for the proxy provider of the first proxy based on first proxy performance statistics analysis, and to dynamically configure utilization threshold of the proxy provider based on the weight calculated.

18. The system of claim 17 , wherein proxy providers' weights are calculated by the SPR based on the evaluation of performance and availability information from at least one proxy belonging to the provider.

19. The system of claim 17 , wherein the SPR periodically, at any configured period of time, calculates and configures proxy providers' weights according to the proxy performance and availability information submitted by the Web Scraper.

20. The system of claim 17 , wherein the SPR stops using a maximized proxy provider, at least for a period of time, when at least one configured maximum threshold is reached.

Assignments (5)
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S ADDRESS PREVIOUSLY RECORDED ON REEL 062717 FRAME 0361. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER AND CHANGE OF NAME. Recorded Mar 2, 2023
From: METACLUSTER LT, UAB
To: OXYLABS, UAB
Reel/Frame 062929/0678 →
MERGER AND CHANGE OF NAME Recorded Feb 13, 2023
From: METACLUSTER LT, UAB; TESO LT, UAB
To: OXYLABS, UAB
Reel/Frame 062717/0361 →
CORRECTIVE ASSIGNMENT TO CORRECT THE TYPOGRAPHICAL ERROR IN THE SPELLING OF THE RECEIVING PARTY'S NAME PREVIOUSLY RECORDED AT REEL: 051838 FRAME: 0859. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 5, 2021
From: JURAVICIUS, MARTYNAS; VILCINSKAS, EIVYDAS
To: METACLUSTER LT, UAB
Reel/Frame 054901/0990 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDRESS OF THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 050994 FRAME 0750. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 5, 2020
From: JURAVICIUS, MARTYNAS; VILCINSKAS, EIVYDAS
To: METACLUSTER LT, UAB
Reel/Frame 051838/0859 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 13, 2019
From: JURAVICIUS, MARTYNAS; VILCINSKAS, EIVYDAS
To: METACLUSTER IT, UAB
Reel/Frame 050994/0750 →
Continuity (1)
Continuation 16590040 · Oct 1, 2019
Cited By (63)
US 12,189,694 US 12,192,026 US 12,200,038 US 12,200,083 US 12,200,084 US 12,218,776 US 12,218,777 US 12,229,210 US 12,231,253 US 12,231,519 US 12,250,089 US 12,250,090 US 12,260,364 US 12,261,712 US 12,277,187 US 12,277,188 US 12,277,189 US 12,278,878 US 12,278,880 US 12,284,069 US 12,289,383 US 12,294,481 US 12,294,628 US 12,301,401 US 12,309,123 US 12,309,241 US 12,323,287 US 12,323,500 US 12,323,501 US 12,332,960 US 12,341,860 US 12,355,855 US 12,368,789 US 12,375,582 US 12,401,724 US 12,411,902 US 12,413,648 US 12,425,492 US 12,438,956 US 12,445,511 US 12,457,273 US 12,483,635 US 12,517,972 US 12,524,490 US 12,524,491 US 12,536,243 US 12,542,764 US 12,549,645 US 12,563,130 US 12,587,429 US 12,587,430 US 12,587,579 US 12,603,809 US 12,652,330 US 12,659,218 US 12,671,750 US 12,706,984 US 12,711,192 US 12,719,734 US 12,719,735 US 12,719,945 US 12,724,840 US 12,726,551