This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.
The World Wide Web (WWW) is the largest source of information in recent era. This is a big source of information sharing between communities. This source of information is available in different forms: text, video, audio, tables etc [1, 2]. People use this information according to their requirements. This information is retrieved via web browsers. A web browser is an interface to retrieve web pages. Search engines are commonly used to search desired information from a bulk of available information on internet [3, 4].
Search engine is a program that searches a requested query from some database of HTML documents gathered by web crawler to finds out relevant URL's and lists them in a page. Search engines maintain their database of URL's by following one URL to another. Simply, when indexing a page, if crawler encounter a new URL, it index in search engine database. In this manner, a huge number of web pages are indexed by search engines [1, 3, 4].
A web crawler is an essential part of every search engine. Web crawler works like a spider that follows a hypertext link to another hypertext link . A web crawler automatically finds out and collects resources like web pages, images, tables and multimedia information from internet. It search URL's from HTML documents, index them in the indexer of search engine and updates the index to keep fresh information for future use. As the internet grows day by day, the size of search engine's index grows with it [3, 4, 7].
Traditional search engine cannot crawl AJAX application because there are many issues that prevent the AJAX applications to expose in front of crawler;
No pre-crawling: Traditional search engines pre-cache the web site and crawl locally. AJAX applications are event based so events cannot be cached.
Infinite event invocation: Since AJAX applications are event based. The application view may lead to infinite event invocation .
Data behind AJAX forms: There may be a form which needs user interaction to be filled out to move on next page. Crawler cannot understand form and unable to discover data behind those forms.
These issues are needed to be solved to make the AJAX applications crawl-able. There are different techniques available to resolve these issues
Two versions of same web: Special and important web pages can be set up in order to include an alternate view of dynamic content. This kind of web pages is specially designed to make dynamic contents crawl-able. Although alternate version of dynamic page contains less information. This is not acceptable solution to the problem because it is not generic for all.
Vertical search engine: Some applications have such as YouTube have their own search engine and have not access to other dynamic content. This also a special case not generic. It is also a small application limited to single application like car search engine.
Exposing data to search engine: Some application developers expose their data to the traditional search based on agreement so that their information can be crawled and indexed.
The existing solutions are not generic and precise. This research proposes a generic solution.
To read the relevant literature for existing techniques
To design a methodology to get the contents of a page that contains AJAX powered form and functions.
To index the web content behind AJAX forms
To provide a mechanism for search engines to move user directly to the data behind AJAX driven forms
Verify and validate the proposed solution using simulations
SCOPE AND LIMITATIONS
ORGANIZATION OF REPORT
The rest of this thesis is organized as follow: Chapter 2 contains the literature review and current status of the domain. Chapter 3 describes the methodology that is use to derive the solution to the problem, Chapter 4 contains the Experimental results and Chapter 5 contains the conclusion and future work.
The World Wide Web has grown from few thousand web pages in 1993 to almost 2 billion web pages at present. It is a big source of information sharing. This source of information is available in different forms; text, images, audio, video, tables etc. People use this information via web browsers. Web browser is an application to browse web on internet. Search engines are used to search specific data from the pool of heterogeneous information . In the rest of this chapter I will how people can search relevant information, how search engine works, what a crawler is, how it works, and what related literature about the particular problem is.
A search engine is a program to search for information on the internet. The results against a search query given by user are presented in a list on a web page. Each result is a link to some web page that contains the specific information against the given query. The information can be a web page, an audio or video file, or a multimedia document. Web search engines work by storing information in its database. This information is collected by crawling each link on a given web site. Google is considered a most powerful and heavily used search engine in these days. It is a large scale general purpose search engine which can crawl and index millions of web pages every day . It provides a good start for information retrieval but may be insufficient to manage complex information inquiries those requires some extra knowledge.
A web crawler is a computer program which is use to browse the World Wide Web in a automatic and systematic manner. It browses the web and save the visited data in database for future use. Search engines use crawler to crawl and index the web to make the information retrieval easy and efficient .
A conventional web crawler can only retrieve surface web. To crawl and index the hidden or deep web requires extra effort. Surface web is the portion of web which can be indexed by conventional search engine . Deep or hidden web is a portion of web which cannot be crawled and indexed by conventional search engine .
DEEP WEB AND DIFFERENT APPROACHES TO DISCOVER IT
Deep web is a part of web which is not part of surface web and lies behind HTML forms or the dynamic web . Deep web content can be classified into following forms;
Dynamic Content: this is a type of web contents which are accessed by submitting some input value in a form. Such kind of web requires domain knowledge and without having knowledge, navigating is very hard.
Unlinked Content: These are the pages which are not linked in other pages. This thing may prevent it from crawling by search engine.
Private Web: These are the sites which require registration and login information.
Contextual Web: These are the web pages which are varying for different access context.
Limited Access Content: These are site which limit its access to their pages.
Non-HTML/ Text Content: The textual contents which are encoded in images or multimedia files cannot handled by search engines.
All these create a problem for search engine and for public because a lot of information is invisible and a common user of search engine even don't know that might be the most important information is not accessible by him/her just because of above properties of web applications. The Deep Web is also believed that it is a big source of structured data on the web and retrieving it is a big challenge for data management community. In fact, this is a myth that deep web is based on structured data which is in fact not true because deep web is a significant source of data most of which is structured but not only one. .
Search engines pre-cache the web site and crawl locally. AJAX applications are event based so events cannot be cached.
The entry point to the deep web is a form. When a crawler finds a form, it needs to guess the data to fill out the form [15, 16]. In this situation crawler needs to react like a human.
There are many solutions to resolve these problems but all have their limitations. Some application developer provides custom search engine or they expose web content to traditional search engine based on agreement. This is a manual solution and requires extra contribution from application developers . Some web developers provide vertical search engine on their web site which is used to search specific information about their web site. There are many companies which have two interfaces of their web site. One is dynamic interface for users convenient and one is alternate static view for crawlers. These solutions only discover the states and events of AJAX based web content and ignore the web content behind AJAX forms. This research work is going to propose solution to discover the web content behind AJAX based forms. Google has proposed a solution but still this project is undergone .
The process of crawling web behind AJAX application becomes more complicated when a form encounters and crawler needs to identify the domain of the form to fill out the data in form to crawl the page. Another problem is that no form has the same structure. For example, a user looking for a car finds different kind of form than a user looking for a book. Hence there are different form schemas which make reading and understanding of form more complicated. To make the forms crawler read-able and understand-able, the whole web should be classified in small categories, each category belongs to a different domain and each domain has a common form schema which is not possible. There is another approach, focused crawler. Focused crawlers try to retrieve only a subset of the pages which contains most relevant information against a particular topic. This approach leads to better indexing and efficient searching than the first approach . This approach will not work in some situations where a form has a parent form. For example, a student fills a registration form. He/she enters country name in a field and next combo dynamically load city names of that particular country. To crawl the web behind AJAX forms, crawler needs special functionality.
Traditional web crawlers discover new web pages by starting from known web pages in web directory. Crawler examines a web page and extracts new links (URLs) and then follows these links to discover new web pages. In other words, the whole web is a directed graph and a crawler traverse the graph by a traversal algorithm . As mentioned above, AJAX based web is like a single page application. So, crawlers are unable to crawl the whole web which is AJAX based. AJAX applications have a series of events and states. Each event is act as an edge and states act as nodes. Crawling states is already done in [14, 18], but this research is left the portion of web which is behind AJAX forms. The focus of this thesis is to crawl web behind AJAX forms.
Indexing means creating and managing index of document for making searching and accessing desired data easy and fast. The web indexing is all about creating indexes for different web sites and HTML documents. These indexes are used by search engine for making their searching fast and efficient . The major goal of any search engine is to create database of larger indexes. Indexes are based on organized information such as topics and names that serve as entry point to go directly to desired information within a corpus of documents . If the web crawler index has enough space for web pages, then those web pages should be the most relevant to the particular topic. A good web index can be maintained by extracting all relevant web pages from as many different servers as possible. Traditional web crawler takes the following approach: it uses a modified breadth-first algorithm to ensure that every server has at least one web page represented in the index. Every time, when a crawler encounters a new web page on a new server, it retrieves all its pages and indexes them with relevant information for future use [7, 21].