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 [1].
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. SEARCH ENGINEA 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 [7]. It provides a good start for information retrieval but may be insufficient to manage complex information inquiries those requires some extra knowledge.
WEB CRAWLERA 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 [4]. 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 [11]. Deep or hidden web is a portion of web which cannot be crawled and indexed by conventional search engine [10]. DEEP WEB AND DIFFERENT APPROACHES TO DISCOVER ITDeep web is a part of web which is not part of surface web and lies behind HTML forms or the dynamic web [10]. 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.
Scripted Content: This is a portion of web which is only accessible through links produced by JavaScript as well as content dynamically invoke by AJAX functions. Non-HTML/ Text Content: The textual contents which are encoded in images or multimedia files cannot handled by search engines.[6] 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. [8]. Researchers are trying to find out the way to crawl the deep web content and they have succeeded in this regard but still there are a lot of future research problems. One way to search deep web content is domain specific search engine or vertical search engine such as worldwidescience.org and science.
org. These search tools are providing a link to national and international scientific databases or portals [7]. In literature there are two other techniques to crawl the deep web content; Virtual Integration and Surfacing. The virtual integration is used in vertical search engine for specific domains like cars, books, research work etc.
In this technique a mediator form is created for each domain and semantic mappings between individual data and mediator form. This technique is not suitable for standard search engine because creating mediator forms and mappings cost very high. Secondly, indentifying queries relevant to each domain is a big challenge and the last is that information on web is about everything and boundaries cannot be clearly defined. Surfacing uses a technique to pre-calculate the most relevant input value for all appealing HTML forms.
The URLs resulting from these form submission are produced off-line and indexed like a normal URL. When user query for a web page which is in fact a deep web content, search engine automatically fill the form and show the link to user. Google uses this technique to crawl deep web content. This technique is unable to surface scripted content [5]. Today most web applications are AJAX based because it reduced the surfing effort of user and network traffic [12, 14]. Gmail, yahoo mail, hotmail and Google maps are famous AJAX applications.
The major goal of AJAX based applications is to enhance the user experience by running client code in browser instead of refreshing the page from server. The second goal is to reduce the network traffic. This is achieved by refreshing only a part of page from server [14]. AJAX has its own limitations. AJAX applications refresh its content without changing URL which is a worm for crawler because crawlers are unable to identify new state.
It is like a single page web site. So, it is essential to explore some mechanism to make AJAX crawl-able. To surface the web contents those are only accessible through JavaScript as well as contents behind URLs dynamically downloaded from web server via AJAX functions [5], there are different hurdles those are prevent the web to expose in front of crawlers; Search engines pre-cache the web site and crawl locally. AJAX applications are event based so events cannot be cached.
AJAX applications are event based so there may be several events that lead to the same state because of same underlying JavaScript function is used to provide the content. It is necessary to identify redundant states to optimize the crawling results [14]. 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 [9]. 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 [9]. 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 [17]. 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. CRAWLING AJAXTraditional 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 [7].
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. INDEXINGIndexing 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 [19]. 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 [20].
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]. The index contains the key words in each document on web, with pointers to their locations within the documents.
This index is called an inverted file. I have used this strategy to index the web behind AJAX forms. QUERY PROCESSERQuery processor processes query entered by user in order to match results from index file. User enters his/her request in the form of a query and query processor retrieves some or all links and documents from index file that contains the information related to the query and present to the user in a list of results [7, 14]. This is a simple interface that can find relevant information with ease.
Query processors are normally built by breadth first search which make sure that every single server containing relevant information has many web pages represented in the index file [17]. This kind of design is important for users, as they can usually navigate within a server more easily that navigating across many servers. If a crawler discovers a server as containing useful data, user will possibly be able to search what they are searching for. Review this after implementing query processor in my thesis.
RESULT COLLECTION AND PRESENTATIONSearch results are displayed to user in the form list. The list contains the URLs and words those matches to the search query entered by user. When user make a query, query processor match it with index, find relevant match and display all them in result page [7]. There are several result collection and representation techniques are available. One of them is grouping similar web pages based on the rate of occurrence of a particular key words on different web pages [15].
Need a review CHAPTER 3SYSTEM ARCHITECTURE AND DESIGNCHAPTER 4EXPERIMENTS AND RESULTSCHAPTER 5FUTURE WORKCHAPTER 6CONCLUSION