『壹』 用java 實現一個搜索功能,要求搜索某個關鍵字,然後把包括這個關鍵字的一段話輸出到文檔中。qq454284728
一、什麼叫搜索引擎?
在Internet上有上百億可用的公共Web頁面,即使是最狂熱的沖浪者也不會訪問到所有的頁面,而只能看到其中的一小部分,更不會在這浩瀚的Web海洋中發現你那即使精彩卻渺小的一隅。當然你可以為你的存在做廣告,可以用大大的字把你的URL刻在你的身體上,然後裸體穿過白宮草坪,但你得保證媒體正好在那裡,並注視到了這一切。與其這樣做,不如好好去理解搜索引擎是如何工作的?又怎樣選擇和使用"keywords"(關鍵詞)等等。
本文的目的就是讓眾多的頁面設計者在了解搜索引擎的基礎上,尋求如何使自己的頁面在搜索引擎索返回的列表中獲得好的排列層次的方法。
"搜索引擎"這個術語一般統指真正意義上的搜索引擎(也就是全文檢索搜索引擎)和目錄(即目錄式分類搜索引擎),其實他們是不一樣的,其區別主要在於返回的搜索結果列表是如何編排的。
1、目錄
目錄(比如Yahoo!)返回的列表是由人工來編排的。
這類引擎提供了一份人工按類別編排的網站目錄,各類下邊排列著屬於這一類別的網站的站名和網址鏈接,再記錄一些摘要信息,對該網站進行概述性介紹(摘要可能是你提交過去的,也可以是引擎站點的編輯為你的站點所做的評價)。人們搜索時就按相應類別的目錄查詢下去。
這類引擎往往還伴有網站查詢功能,也稱之為網站檢索,即提供一個文字輸入框和一個按鈕。我們可以在文字框中輸入要查找的字、詞或短語,再點擊按鈕,便會在目錄中查找相關的站名、網址和內容提要,將查到的內容列表送過來。目前國內Sohoo、常青藤等都是這種搜索方式。
2、搜索引擎
搜索引擎(如HotBot)是自動創建列表的。
搜索引擎看起來與目錄的網站查詢非常相似,也提供一個文字輸入框和按鈕,使用方法也相同,而且有些也提供分類目錄,但兩者卻有本質上的區別。
目錄的資料庫中,搜集保存的是各網站的站名、網址和內容提要;搜索引擎的資料庫中,搜集保存的則是各網站的每一個網頁的全部內容,范圍要大得多。
搜索引擎是以全文檢索的方式工作的。全文檢索查到的結果不是站名、網址和內容提要,而是與你輸入的關鍵詞相關的一個個網頁的地址和一小段文字。在這段文字中,可能沒有你輸入的那個關鍵詞,它只是某一網頁的第一段話,甚至是一段無法看懂的標記,但在這個網頁中,一定有你所輸入的那個關鍵詞,或者相關的詞彙。打個比方說,網站查詢可以查到網上有哪些報紙,如《文匯報》、《大公報》,而全文檢索則可以查到網上這些報紙的每一篇文章中的詞彙。
3、兩者相結合的搜索引擎
某些搜索引擎同時也提供目錄。包含在搜索引擎中的目錄通常質量比較高,也能從那裡找到許多好站點。因為即使你把你的站點提交過去,也並不能保證一定被加到目錄中去,他們把注意力放在那些已經在別的目錄中存在的站點上,並有選擇地尋找有吸引力的加到自己的目錄中。
搜索引擎和目錄各有各自不可替代的功用。目錄比較簡單,要想獲得一個好的排列層次,除了你努力創建一個好內容的高品質站點外別無他法。搜索引擎復雜得多,它們隨時都在自動地索引眾多WEB站點的最新網頁,所以常常會發現目錄所不能得到的信息。如果你改動了你的頁面,搜索引擎還隨時會發現這個變化,並重新排列你在列表中的位置。而目錄就做不到。下面專門討論搜索引擎的工作原理以及如何提高在搜索引擎列表中的排列位置。
搜索引擎(search engines)是對互聯網上的信息資源進行搜集整理,然後供你查詢的系統,它包括信息搜集、信息整理和用戶查詢三部分。
搜索引擎是一個為你提供信息「檢索」服務的網站,它使用某些程序把網際網路上的所有信息歸類以幫助人們在茫茫網海中搜尋到所需要的信息。
早期的搜索引擎是把網際網路中的資源伺服器的地址收集起來,由其提供的資源的類型不同而分成不同的目錄,再一層層地進行分類。人們要找自己想要的信息可按他們的分類一層層進入,就能最後到達目的地,找到自己想要的信息。這其實是最原始的方式,只適用於網際網路信息並不多的時候。隨著網際網路信息按幾何式增長,出現了真正意義上的搜索引擎,這些搜索引擎知道網站上每一頁的開始,隨後搜索網際網路上的所有超級鏈接,把代表超級鏈接的所有詞彙放入一個資料庫。這就是現在搜索引擎的原型。
隨著yahoo!的出現,搜索引擎的發展也進入了黃金時代,相比以前其性能更加優越。現在的搜索引擎已經不只是單純的搜索網頁的信息了,它們已經變得更加綜合化,完美化了。以搜索引擎權威yahoo!為例,從1995年3月由美籍華裔楊致遠等人創辦yahoo!開始,到現在,他們從一個單一的搜索引擎發展到現在有電子商務、新聞信息服務、個人免費電子信箱服務等多種網路服務,充分說明了搜索引擎的發展從單一到綜合的過程。
然而由於搜索引擎的工作方式和網際網路的快速發展,使其搜索的結果讓人越來越不滿意。例如,搜索「電腦」這個詞彙,就可能有數百萬頁的結果。這是由於搜索引擎通過對網站的相關性來優化搜索結果,這種相關性又是由關鍵字在網站的位置、網站的名稱、 標簽等公式來決定的。這就是使搜索引擎搜索結果多而雜的原因。而搜索引擎中的資料庫因為網際網路的發展變化也必然包含了死鏈接。
怎樣才能使搜索引擎精確地為人們提供相關的信息應該是它以後發展的方向,而不是只求綜合服務。
搜索引擎指自動從英特網搜集信息,經過一定整理以後,提供給用戶進行查詢的系統。英特網上的信息浩瀚萬千,而且毫無秩序,所有的信息象汪洋上的一個個小島,網頁鏈接是這些小島之間縱橫交錯的橋梁,而搜索引擎,則為你繪制一幅一目瞭然的信息地圖,供你隨時查閱。
搜索引擎的工作原理
搜索引擎的工作原理大致可以分為:
1、搜集信息:搜索引擎的信息搜集基本都是自動的。搜索引擎利用稱為網路蜘蛛(spider)的自動搜索機器人程序來連上每一個網頁上的超連結。機器人程序根據網頁鏈到其他中的超鏈接,就象日常生活中所說的「一傳十,十傳百……」一樣,從少數幾個網頁開始,連到資料庫上所有到其他網頁的鏈接。理論上,若網頁上有適當的超連結,機器人便可以遍歷絕大部分網頁。
2、整理信息:搜索引擎整理信息的過程稱為「建立索引」。搜索引擎不僅要保存搜集起來的信息,還要將它們按照一定的規則進行編排。這樣,搜索引擎根本不用重新翻查它所有保存的信息而迅速找到所要的資料。想像一下,如果信息是不按任何規則地隨意堆放在搜索引擎的資料庫中,那麼它每次找資料都得把整個資料庫完全翻查一遍,如此一來再快的計算機系統也沒有用。
3、接受查詢:用戶向搜索引擎發出查詢,搜索引擎接受查詢並向用戶返回資料。搜索引擎每時每刻都要接到來自大量用戶的幾乎是同時發出的查詢,它按照每個用戶的要求檢查自己的索引,在極短時間內找到用戶需要的資料,並返回給用戶。目前,搜索引擎返回主要是以網頁鏈接的形式提供的,這些通過這些鏈接,用戶便能到達含有自己所需資料的網頁。通常搜索引擎會在這些鏈接下提供一小段來自這些網頁的摘要信息以幫助用戶判斷此網頁是否含有自己需要的內容。
.
『貳』 互聯網上第一個搜索引擎是什麼
所有搜索引擎的祖先,是1990年由Montreal的McGill University學生Alan Emtage、Peter Deutsch、Bill Wheelan發明的Archie(Archie FAQ)。當時World Wide Web還未出現。Archie是第一個自動索引互聯網上匿名FTP網站文件的程序,但它還不是真正的搜索引擎。Archie是一個可搜索的FTP文件名列表,用戶必須輸入精確的文件名搜索,然後Archie會告訴用戶哪一個FTP地址可以下載該文件。
由於Archie深受歡迎,受其啟發,Nevada System Computing Services大學於1993年開發了一個Gopher(Gopher FAQ)搜索工具Veronica(Veronica FAQ)。Jughead是後來另一個Gopher搜索工具。
由於專門用於檢索信息的Robot程序象蜘蛛(spider)一樣在網路間爬來爬去,因此,搜索引擎的Robot程序被稱為spider(Spider FAQ)程序。世界上第一個Spider程序,是MIT Matthew Gray的World wide Web Wanderer,用於追蹤互聯網發展規模。剛開始它只用來統計互聯網上的伺服器數量,後來則發展為也能夠捕獲網址(URL)。
與Wanderer相對應,1993年10月Martijn Koster創建了ALIWEB(Martijn Koster Annouces the Availability of Aliweb),它相當於Archie的HTTP版本。ALIWEB不使用網路搜尋Robot,如果網站主管們希望自己的網頁被ALIWEB收錄,需要自己提交每一個網頁的簡介索引信息,類似於後來大家熟知的Yahoo。
1993年底,一些基於此原理的搜索引擎開始紛紛涌現,其中最負盛名的三個是:Scotland的JumpStation、Colorado 大學Oliver McBryan的The World Wide Web Worm(First Mention of McBryan』s World Wide Web Worm)、NASA的Repository-Based Software Engineering (RBSE) spider。
『叄』 java 網路爬蟲怎麼實現
網路爬蟲是一個自動提取網頁的程序,它為搜索引擎從萬維網上下載網頁,是搜索引擎的重要組成。
傳統爬蟲從一個或若干初始網頁的URL開始,獲得初始網頁上的URL,在抓取網頁的過程中,不斷從當前頁面上抽取新的URL放入隊列,直到滿足系統的一定停止條件。對於垂直搜索來說,聚焦爬蟲,即有針對性地爬取特定主題網頁的爬蟲,更為適合。
以下是一個使用java實現的簡單爬蟲核心代碼:
public void crawl() throws Throwable {
while (continueCrawling()) {
CrawlerUrl url = getNextUrl(); //獲取待爬取隊列中的下一個URL
if (url != null) {
printCrawlInfo();
String content = getContent(url); //獲取URL的文本信息
//聚焦爬蟲只爬取與主題內容相關的網頁,這里採用正則匹配簡單處理
if (isContentRelevant(content, this.regexpSearchPattern)) {
saveContent(url, content); //保存網頁至本地
//獲取網頁內容中的鏈接,並放入待爬取隊列中
Collection urlStrings = extractUrls(content, url);
addUrlsToUrlQueue(url, urlStrings);
} else {
System.out.println(url + " is not relevant ignoring ...");
}
//延時防止被對方屏蔽
Thread.sleep(this.delayBetweenUrls);
}
}
closeOutputStream();
}
private CrawlerUrl getNextUrl() throws Throwable {
CrawlerUrl nextUrl = null;
while ((nextUrl == null) && (!urlQueue.isEmpty())) {
CrawlerUrl crawlerUrl = this.urlQueue.remove();
//doWeHavePermissionToVisit:是否有許可權訪問該URL,友好的爬蟲會根據網站提供的"Robot.txt"中配置的規則進行爬取
//isUrlAlreadyVisited:URL是否訪問過,大型的搜索引擎往往採用BloomFilter進行排重,這里簡單使用HashMap
//isDepthAcceptable:是否達到指定的深度上限。爬蟲一般採取廣度優先的方式。一些網站會構建爬蟲陷阱(自動生成一些無效鏈接使爬蟲陷入死循環),採用深度限制加以避免
if (doWeHavePermissionToVisit(crawlerUrl)
&& (!isUrlAlreadyVisited(crawlerUrl))
&& isDepthAcceptable(crawlerUrl)) {
nextUrl = crawlerUrl;
// System.out.println("Next url to be visited is " + nextUrl);
}
}
return nextUrl;
}
private String getContent(CrawlerUrl url) throws Throwable {
//HttpClient4.1的調用與之前的方式不同
HttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url.getUrlString());
StringBuffer strBuf = new StringBuffer();
HttpResponse response = client.execute(httpGet);
if (HttpStatus.SC_OK == response.getStatusLine().getStatusCode()) {
HttpEntity entity = response.getEntity();
if (entity != null) {
BufferedReader reader = new BufferedReader(
new InputStreamReader(entity.getContent(), "UTF-8"));
String line = null;
if (entity.getContentLength() > 0) {
strBuf = new StringBuffer((int) entity.getContentLength());
while ((line = reader.readLine()) != null) {
strBuf.append(line);
}
}
}
if (entity != null) {
nsumeContent();
}
}
//將url標記為已訪問
markUrlAsVisited(url);
return strBuf.toString();
}
public static boolean isContentRelevant(String content,
Pattern regexpPattern) {
boolean retValue = false;
if (content != null) {
//是否符合正則表達式的條件
Matcher m = regexpPattern.matcher(content.toLowerCase());
retValue = m.find();
}
return retValue;
}
public List extractUrls(String text, CrawlerUrl crawlerUrl) {
Map urlMap = new HashMap();
extractHttpUrls(urlMap, text);
extractRelativeUrls(urlMap, text, crawlerUrl);
return new ArrayList(urlMap.keySet());
}
private void extractHttpUrls(Map urlMap, String text) {
Matcher m = (text);
while (m.find()) {
String url = m.group();
String[] terms = url.split("a href=\"");
for (String term : terms) {
// System.out.println("Term = " + term);
if (term.startsWith("http")) {
int index = term.indexOf("\"");
if (index > 0) {
term = term.substring(0, index);
}
urlMap.put(term, term);
System.out.println("Hyperlink: " + term);
}
}
}
}
private void extractRelativeUrls(Map urlMap, String text,
CrawlerUrl crawlerUrl) {
Matcher m = relativeRegexp.matcher(text);
URL textURL = crawlerUrl.getURL();
String host = textURL.getHost();
while (m.find()) {
String url = m.group();
String[] terms = url.split("a href=\"");
for (String term : terms) {
if (term.startsWith("/")) {
int index = term.indexOf("\"");
if (index > 0) {
term = term.substring(0, index);
}
String s = //" + host + term;
urlMap.put(s, s);
System.out.println("Relative url: " + s);
}
}
}
}
public static void main(String[] args) {
try {
String url = "";
Queue urlQueue = new LinkedList();
String regexp = "java";
urlQueue.add(new CrawlerUrl(url, 0));
NaiveCrawler crawler = new NaiveCrawler(urlQueue, 100, 5, 1000L,
regexp);
// boolean allowCrawl = crawler.areWeAllowedToVisit(url);
// System.out.println("Allowed to crawl: " + url + " " +
// allowCrawl);
crawler.crawl();
} catch (Throwable t) {
System.out.println(t.toString());
t.printStackTrace();
}
}
『肆』 常用的java蜘蛛有哪些
常用的java蜘蛛有:Heritrix 、WebSPHINX 、WebLech 、Arale、J-Spider、spindle、Arachnid 、LARM 、JoBo 。
1、Heritrix是一個開源,可擴展的web爬蟲項目。Heritrix設計成嚴格按照robots.txt文件的排除指示和META robots標簽。
2、WebSPHINX是一個Java類包和Web爬蟲的互動式開發環境。Web爬蟲(也叫作機器人或蜘蛛)是可以自動瀏覽與處理Web頁面的程序。WebSPHINX由兩部分組成:爬蟲工作平台和WebSPHINX類包。
3、WebLech是一個功能強大的Web站點下載與鏡像工具。它支持按功能需求來下載web站點並能夠盡可能模仿標准Web瀏覽器的行為。WebLech有一個功能控制台並採用多線程操作。
4、Arale主要為個人使用而設計,而沒有像其它爬蟲一樣是關注於頁面索引。Arale能夠下載整個web站點或來自web站點的某些資源。Arale還能夠把動態頁面映射成靜態頁面。
5、J-Spider:是一個完全可配置和定製的Web Spider引擎.你可以利用它來檢查網站的錯誤(內在的伺服器錯誤等),網站內外部鏈接檢查,分析網站的結構(可創建一個網站地圖),下載整個Web站點,你還可以寫一個JSpider插件來擴展你所需要的功能。
6、spindle是一個構建在Lucene工具包之上的Web索引/搜索工具.它包括一個用於創建索引的HTTP spider和一個用於搜索這些索引的搜索類。spindle項目提供了一組JSP標簽庫使得那些基於JSP的站點不需要開發任何Java類就能夠增加搜索功能。
7、Arachnid:是一個基於Java的web spider框架.它包含一個簡單的HTML剖析器能夠分析包含HTML內容的輸入流.通過實現Arachnid的子類就能夠開發一個簡單的Web spiders並能夠在Web站上的每個頁面被解析之後增加幾行代碼調用。 Arachnid的下載包中包含兩個spider應用程序例子用於演示如何使用該框架。
8、LARM能夠為Jakarta Lucene搜索引擎框架的用戶提供一個純Java的搜索解決方案。它包含能夠為文件,資料庫表格建立索引的方法和為Web站點建索引的爬蟲。
9、JoBo是一個用於下載整個Web站點的簡單工具。它本質是一個Web Spider。與其它下載工具相比較它的主要優勢是能夠自動填充form(如:自動登錄)和使用cookies來處理session。JoBo還有靈活的下載規則(如:通過網頁的URL,大小,MIME類型等)來限制下載。
『伍』 搜索引擎技術發展史
搜索引擎的發展歷史
1990年,加拿大麥吉爾大學(University of McGill)計算機學院的師生開發出Archie。當時,萬維網(World Wide Web)還沒有出現,人們通過FTP來共享交流資源。Archie能定期搜集並分析FTP伺服器上的文件名信息,提供查找分別在各個FTP主機中的文件。用戶必須輸入精確的文件名進行搜索,Archie告訴用戶哪個FTP伺服器能下載該文件。雖然Archie搜集的信息資源不是網頁(HTML文件),但和搜索引擎的基本工作方式是一樣的:自動搜集信息資源、建立索引、提供檢索服務。所以,Archie被公認為現代搜索引擎的鼻祖。
Robot(機器人)一詞對編程者有特殊的意義。Computer Robot是指某個能以人類無法達到的速度不斷重復執行某項任務的自動程序。由於專門用於檢索信息的Robot程序象蜘蛛(spider)一樣在網路間爬來爬去,因此,搜索引擎的Robot程序被稱為spider程序。
1993年Matthew Gray開發了 World Wide Web Wanderer,這是第一個利用HTML網頁之間的鏈接關系來檢測萬維網規模的「機器人(Robot)」程序。開始,它僅僅用來統計互聯網上的伺服器數量,後來也能夠捕獲網址(URL)。
1994年4月,斯坦福大學(Stanford University)的兩名博士生,美籍華人Jerry Yang(楊致遠)和David Filo共同創辦了Yahoo。隨著訪問量和收錄鏈接數的增長,Yahoo目錄開始支持簡單的資料庫搜索。因為Yahoo!的數據是手工輸入的,所以不能真正被歸為搜索引擎,事實上只是一個可搜索的目錄。雅虎於2002年12月23日收購inktomi,2003年7月14日收購包括Fast和Altavista在內的Overture,2003年11月,Yahoo全資收購3721公司。
1994年初,華盛頓大學(University of Washington )的學生Brian Pinkerton開始了他的小項目WebCrawler。1994年4月20日,WebCrawler正式亮相時僅包含來自6000個伺服器的內容。WebCrawler是互聯網上第一個支持搜索文件全部文字的全文搜索引擎,在它之前,用戶只能通過URL和摘要搜索,摘要一般來自人工評論或程序自動取正文的前100個字。
1994年7月,卡內基•梅隆大學(Carnegie Mellon University) 的Michael Mauldin將John Leavitt的spider程序接入到其索引程序中,創建了Lycos。除了相關性排序外,Lycos還提供了前綴匹配和字元相近限制,Lycos第一個在搜索結果中使用了網頁自動摘要,而最大的優勢還是它遠勝過其它搜索引擎的數據量。
1994年底,Infoseek正式亮相。其友善的界面,大量的附加功能,使之和Lycos一樣成為搜索引擎的重要代表。
1995年,一種新的搜索引擎形式出現了——元搜索引擎(A Meta Search Engine Rounp)。用戶只需提交一次搜索請求,由元搜索引擎負責轉換處理,提交給多個預先選定的獨立搜索引擎,並將從各獨立搜索引擎返回的所有查詢結果,集中起來處理後再返回給用戶。第一個元搜索引擎,是Washington大學碩士生 Eric Selberg 和 Oren Etzioni 的 Metacrawler。
1995年12月,DEC的正式發布AltaVista。AltaVista是第一個支持自然語言搜索的搜索引擎,第一個實現高級搜索語法的搜索引擎(如AND, OR, NOT等)。用戶可以用AltaVista搜索新聞組(Newsgroups)的內容並從互聯網上獲得文章,還可以搜索圖片名稱中的文字、搜索Titles、搜索Java applets、搜索ActiveX objects。AltaVista也聲稱是第一個支持用戶自己向網頁索引庫提交或刪除URL的搜索引擎,並能在24小時內上線。AltaVista最有趣的新功能之一,是搜索有鏈接指向某個URL的所有網站。在面向用戶的界面上,AltaVista也作了大量革新。它在搜索框區域下放了「tips」以幫助用戶更好的表達搜索式,這些小tip經常更新,這樣,在搜索過幾次以後,用戶會看到很多他們可能從來不知道的的有趣功能。這系列功能,逐漸被其它搜索引擎廣泛採用。1997年,AltaVista發布了一個圖形演示系統LiveTopics,幫助用戶從成千上萬的搜索結果中找到想要的。
1995年9月26日,加州伯克利分校助教Eric Brewer、博士生Paul Gauthier創立了Inktomi,1996年5月20日,Inktomi公司成立,強大的HotBot出現在世人面前。聲稱每天能抓取索引1千萬頁以上,所以有遠超過其它搜索引擎的新內容。HotBot也大量運用cookie儲存用戶的個人搜索喜好設置。
1997年8月,Northernlight搜索引擎正式現身。它曾是擁有最大數據庫的搜索引擎之一,它沒有Stop Words,它有出色的Current News、7,100多出版物組成的Special Collection、良好的高級搜索語法,第一個支持對搜索結果進行簡單的自動分類。
1998年10月之前,Google只是斯坦福大學(Stanford University)的一個小項目BackRub。1995年博士生Larry Page開始學習搜索引擎設計,於1997年9月15日注冊了google.com的域名,1997年底,在Sergey Brin和Scott Hassan、Alan Steremberg的共同參與下,BachRub開始提供Demo。1999年2月,Google完成了從Alpha版到Beta版的蛻變。Google公司則把1998年9月27日認作自己的生日。Google以網頁級別(Pagerank)為基礎,判斷網頁的重要性,使得搜索結果的相關性大大增強。Google公司的奇客(Geek)文化氛圍、不作惡(Don』t be evil)的理念,為Google贏得了極高的口碑和品牌美譽。2006年4月,Google宣布其中文名稱「谷歌」,這是Google第一個在非英語國家起的名字。
Fast(Alltheweb)公司創立於1997年,是挪威科技大學(NTNU)學術研究的副產品。1999年5月,發布了自己的搜索引擎AllTheWeb。Fast創立的目標是做世界上最大和最快的搜索引擎,幾年來庶幾近之。Fast(Alltheweb)的網頁搜索可利用ODP自動分類,支持Flash和pdf搜索,支持多語言搜索,還提供新聞搜索、圖像搜索、視頻、MP3、和FTP搜索,擁有極其強大的高級搜索功能。(2003年2月25日,Fast的互聯網搜索部門被Overture收購)。
1996年8月,sohu公司成立,製作中文網站分類目錄,曾有「出門找地圖,上網找搜狐」的美譽。隨著互聯網網站的急劇增加,這種人工編輯的分類目錄已經不適應。sohu於2004年8月獨立域名的搜索網站「搜狗」,自稱「第三代搜索引擎」。
Openfind 創立於1998年1月,其技術源自台灣中正大學吳升教授所領導的GAIS實驗室。Openfind起先只做中文搜索引擎,鼎盛時期同時為三大著名門戶新浪、奇摩、雅虎提供中文搜索引擎,但2000年後市場逐漸被Bai和Google瓜分。2002年6月,Openfind重新發布基於GAIS30 Project的Openfind搜索引擎Beta版,推出多元排序(PolyRankTM),宣布累計抓取網頁35億,開始進入英文搜索領域。
2000年1月,兩位北大校友,超鏈分析專利發明人、前Infoseek資深工程師李彥宏與好友徐勇(加州伯克利分校博士後)在北京中關村創立了網路(Bai)公司。2001年8月發布Bai.com搜索引擎Beta版(此前Bai只為其它門戶網站搜狐新浪Tom等提供搜索引擎),2001年10月22日正式發布Bai搜索引擎,專注於中文搜索。Bai搜索引擎的其它特色包括:網路快照、網頁預覽/預覽全部網頁、相關搜索詞、錯別字糾正提示、mp3搜索、Flash搜索。2002年3月閃電計劃(Blitzen Project)開始後,技術升級明顯加快。後推出貼吧、知道、地圖、國學、網路等一系列產品,深受網民歡迎。2005年8月5日在納斯達克上市,發行價為USD 27.00,代號為BIDU。開盤價USD 66.00,以USD 122.54收盤,漲幅353.85%,創下了5年以來美國股市上市新股當日漲幅最高紀錄。
『陸』 如何做一個蜘蛛程序
是啊,推薦先學習一下開源的spider吧:
Larbin: http://larbin.sourceforge.net/index-eng.html
larbin是一種開源的網路爬蟲/網路蜘蛛,由法國的年輕人 Sébastien Ailleret獨立開發。larbin目的是能夠跟蹤頁面的url進行擴展的抓取,最後為搜索引擎提供廣泛的數據來源。
三>、開源spider一覽
spider是搜索引擎的必須模塊.spider數據的結果直接影響到搜索引擎的評價指標.
第一個spider程序由MIT的Matthew K Gray操刀該程序的目的是為了統計互聯網中主機的數目
Spier定義(關於Spider的定義,有廣義和狹義兩種).
狹義:利用標準的http協議根據超鏈和web文檔檢索的方法遍歷萬維網信息空間的軟體程序.
廣義:所有能利用http協議檢索web文檔的軟體都稱之為spider.
其中Protocol Gives Sites Way To Keep Out The \'Bots Jeremy Carl, Web Week, Volume 1, Issue 7, November 1995 是和spider息息相關的協議,大家有興趣參考robotstxt.org.
Heritrix
Heritrix is the Internet Archive\'s open-source, extensible, web-scale, archival-quality web crawler project.
Heritrix (sometimes spelled heretrix, or misspelled or missaid as heratrix/heritix/ heretix/heratix) is an archaic word for heiress (woman who inherits). Since our crawler seeks to collect and preserve the digital artifacts of our culture for the benefit of future researchers and generations, this name seemed apt.
語言:JAVA, (下載地址)
WebLech URL Spider
WebLech is a fully featured web site download/mirror tool in Java, which supports many features required to download websites and emulate standard web-browser behaviour as much as possible. WebLech is multithreaded and comes with a GUI console.
語言:JAVA, (下載地址)
JSpider
A Java implementation of a flexible and extensible web spider engine. Optional moles allow functionality to be added (searching dead links, testing the performance and scalability of a site, creating a sitemap, etc ..
語言:JAVA, (下載地址)
WebSPHINX
WebSPHINX is a web crawler (robot, spider) Java class library, originally developed by Robert Miller of Carnegie Mellon University. Multithreaded, tollerant HTML parsing, URL filtering and page classification, pattern matching, mirroring, and more.
語言:JAVA, (下載地址)
PySolitaire
PySolitaire is a fork of PySol Solitaire that runs correctly on Windows and has a nice clean installer. PySolitaire (Python Solitaire) is a collection of more than 300 solitaire and Mahjongg games like Klondike and Spider.
語言:Python , (下載地址)
The Spider Web Network Xoops Mod Team
The Spider Web Network Xoops Mole Team provides moles for the Xoops community written in the PHP coding language. We develop mods and or take existing php script and port it into the Xoops format. High quality mods is our goal.
語言:php , (下載地址)
Fetchgals
A multi-threaded web spider that finds free porn thumbnail galleries by visiting a list of known TGPs (Thumbnail Gallery Posts). It optionally downloads the located pictures and movies. TGP list is included. Public domain perl script running on Linux.
語言:perl , (下載地址)
Where Spider
The purpose of the Where Spider software is to provide a database system for storing URL addresses. The software is used for both ripping links and browsing them offline. The software uses a pure XML database which is easy to export and import.
語言:XML , (下載地址)
[B][/B]Sperowider
Sperowider Website Archiving Suite is a set of Java applications, the primary purpose of which is to spider dynamic websites, and to create static distributable archives with a full text search index usable by an associated Java applet.
語言:Java , (下載地址)
SpiderPy
SpiderPy is a web crawling spider program written in Python that allows users to collect files and search web sites through a configurable interface.
語言:Python , (下載地址)
[B][/B]Spidered Data Retrieval
Spider is a complete standalone Java application designed to easily integrate varied datasources. * XML driven framework * Scheled pulling * Highly extensible * Provides hooks for custom post-processing and configuration
語言:Java , (下載地址)
[B][/B]webloupe
WebLoupe is a java-based tool for analysis, interactive visualization (sitemap), and exploration of the information architecture and specific properties of local or publicly accessible websites. Based on web spider (or web crawler) technology.
語言:java , (下載地址)
ASpider
Robust featureful multi-threaded CLI web spider using apache commons httpclient v3.0 written in java. ASpider downloads any files matching your given mime-types from a website. Tries to reg.exp. match emails by default, logging all results using log4j.
語言:java , (下載地址)
larbin
Larbin is an HTTP Web crawler with an easy interface that runs under Linux. It can fetch more than 5 million pages a day on a standard PC (with a good network).
語言:C++, (下載地址)