IP Library Granted Patent US 7,584,194
Granted Patent B2
US 7,584,194 · App. 11/286,269 · Granted Sep 1, 2009

Method and apparatus for an application crawler

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 7,584,194
App. No.
11/286,269
Granted
Sep 1, 2009
Kind
B2
Abstract

A computer-implemented method is provided for searching for files on the Internet. In one embodiment, the method may provide an application crawler that assembles and dynamically instantiates all components of a web page. The instantiated web application may then be analyzed to locate desired components on the web page. This may involve finding and analyzing all clickable items in the application, driving the web application by injecting events, and extracting information from the application and writing it to a file or database.

Claims (69)

1. A computer-implemented method for searching for files on the Internet, the method comprising:

finding a target URL;

downloading an HTML file for the target URL;

downloading supplementary data files used to build a web application, based on information in the HTML file;

assembling application components from the supplementary data files and the HTML file;

instantiating application components to create the web application;

applying data-query interfaces to all media objects in the web application that may contain useful data;

loading a pre-defined Application template or generating and automatically defining an Application template;

applying the Application template to extract all of the desired information from the web application;

saving the desired information to a file or database as a structured data information record;

examining all components in the web application to identify all possible components that could respond to a mouse event or form a clickable item;

determining which clickable items have appeared since a last simulated mouse event;

storing new clickable items in an appropriate data structure on a storage medium, wherein the appropriate data structure is a new branch of a clickable item tree containing all clickable items in the application at all possible application states;

simulating a mouse click on a first clickable item in a current branch of the clickable item tree; and

repeating this method until the entire clickable item tree has been traversed including, while continuing to instantiate the application components to create the web application, at a subsequent point in time, relating information gathered from examining subsequently loaded and instantiated components of the web application that are displayed at the subsequent point in time.

2. The method of claim 1 wherein the instantiating step includes at least one of the following:

rendering HTML and constructing a Document Object Model;

applying style sheets;

executing scripts in an appropriate script interpreter;

activating any controls or plug-ins;

launching video or audio streams;

launching animations; or

executing HTML behavior scripts.

3. A computer program product comprising: a computer usable storage medium and computer readable code embodied on said computer usable storage medium, the computer readable code comprising computer executable instructions that, as executed by a processor, cause a computer implemented system to perform a method for:

finding a target URL;

downloading an HTML file for the target URL;

downloading supplementary data files used to build a web application, based on information in the HTML file;

assembling application components from the supplementary data files and the HTML file;

instantiating application components to create the web application;

applying data-query interfaces to all media objects in the web application that may contain useful data;

loading a pre-defined Application template or generating and automatically defining an Application template;

applying the Application template to extract all of the desired information from the web application;

saving the desired information to a file or database as a structured data information record;

examining all components in the web application to identify all possible components that could respond to a mouse event or form a clickable item;

determining which clickable items have appeared since a last simulated mouse event;

storing new clickable items in an appropriate data structure on a storage medium, wherein the appropriate data structure is a new branch of a clickable item tree containing all clickable items in the application at all possible application states;

simulating a mouse click on a first clickable item in a current branch of the clickable item tree; and

repeating this method until the entire clickable item tree has been traversed including, while continuing to instantiate the application components to create the web application, at a subsequent point in time, relating information gathered from examining subsequently loaded and instantiated components of the web application that are displayed at the subsequent point in time.

4. The computer program product recited in claim 3 , wherein the computer executable instructions that, as executed by a processor, cause a computer implemented system to perform instantiating application components to create a web application, further performs at least one of:

rendering HTML and constructing a Document Object Model;

applying style sheets;

executing scripts in an appropriate script interpreter;

activating any controls or plug-ins;

launching video or audio streams;

launching animations; or

executing HTML behavior scripts.

5. A computer system having a storage medium having computer-executable code stored thereon and a processor, the computer system comprising:

an application crawler having programming code configured to, as executed by a processor:

find a target URL;

download an HTML file for the target URL;

download supplementary data files used to build a web application, based on information in the HTML file;

assemble application components from the supplementary data files and the HTML file;

instantiate application components to create the web application; apply data-query interfaces to all media objects in the web application that may contain useful data;

load a pre-defined Application template or generating and automatically defining an Application template;

apply the Application template to extract all of the desired information from the web application;

save the desired information to a file or database as a structured data information record;

examine all components in the web application to identify all possible components that could respond to a mouse event or form a clickable item;

determine which clickable items have appeared since a last simulated mouse event;

store new clickable items in an appropriate data structure on a storage medium, wherein the appropriate data structure is a new branch of a clickable item tree containing all clickable items in the application at all possible application states;

simulate a mouse click on a first clickable item in a current branch of the clickable item tree; and

repeat this method until the entire clickable item tree has been traversed including, while continuing to instantiate the application components to create the web application, at a subsequent point in time, relating information gathered from examining subsequently loaded and instantiated components of the web application that are displayed at the subsequent point in time.

6. The system of claim 5 wherein the programming code of the application crawler is further configured to, when instantiating application components to create the web application, perform at least one of the following:

render HTML and constructing a Document Object Model;

apply style sheets;

execute scripts in an appropriate script interpreter;

activate any controls or plug-ins;

launch video or audio streams;

launch animations; or

execute HTML behavior scripts.

Assignments (4)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058961/0436 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2012
From: TRUVEO, INC.
To: FACEBOOK, INC.
Reel/Frame 028464/0744 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 16, 2010
From: BANK OF AMERICA, N A
To: AOL INC; AOL ADVERTISING INC; GOING INC; LIGHTNINGCAST LLC; MAPQUEST, INC; NETSCAPE COMMUNICATIONS CORPORATION; QUIGO TECHNOLOGIES LLC; SPHERE SOURCE, INC; TACODA LLC; TRUVEO, INC; YEDDA, INC
Reel/Frame 025323/0416 →
SECURITY AGREEMENT Recorded Dec 14, 2009
From: AOL INC.; AOL ADVERTISING INC.; BEBO, INC.; ICQ LLC; GOING, INC.; LIGHTNINGCAST LLC; MAPQUEST, INC.; NETSCAPE COMMUNICATIONS CORPORATION; QUIGO TECHNOLOGIES LLC; SPHERE SOURCE, INC.; TACODA LLC; TRUVEO, INC.; YEDDA, INC.
To: BANK OF AMERICAN, N.A. AS COLLATERAL AGENT
Reel/Frame 023649/0061 →