freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

web音樂(lè)搜索軟件的設(shè)計(jì)與實(shí)現(xiàn)—免費(fèi)計(jì)算機(jī)畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2024-12-29 16:53 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 else{ (url)。 sea=new Search(url)。 String pageContents =()。 //downloadPage(verifiedUrl)。 if (pageContents != null amp。amp。 () 0){ // 從頁(yè)面中獲取有效的鏈接 ana=new Analyzer(pageContents,url)。 ArrayList links =()。//retrieveLinks(verifiedUrl, pageContents, crawledList,limitHost) List mp3link= ()。 (links)。 for(Iterator its=()。()。){ m= (mp3)()。 String sql=INSERT INTO `mappingmusic` ( `m_url` , `m_name` , `m_type`,`m_date` )VALUES (39。+()+39。, 39。+()+39。, 39。+()+39。,39。+date+39。)。 (sql)。 dispalystr+= 名字 :+()+\n+ 類(lèi)型 :+()+\n+ 地址 :+()+\n。 第 8 頁(yè) 共 21 頁(yè) (dispalystr)。 // ( 名字 :+()+\n+ 地址 :+()+\n+ 類(lèi)型 :+())。 } (url)。 (正在解析: +url)。 (300)。 } n++。 } } (已經(jīng)完成采集任務(wù)共分析 +n+地址 )。 (共分析 +n+地址 )。 } 模擬瀏覽器 模擬瀏覽器主要是從 web 服務(wù)器上獲取網(wǎng)頁(yè)并 把網(wǎng)頁(yè)保存到本地緩沖區(qū)中 ,方便后續(xù)程序分析分類(lèi) 。模擬瀏覽器 主要通過(guò) 類(lèi)來(lái)實(shí)現(xiàn) 。 網(wǎng)絡(luò) API 通過(guò)提供 URL 類(lèi)讓 用戶 能在源代碼層使用 URL, 每一個(gè) URL 對(duì)象都封裝了資源的標(biāo)識(shí)符和協(xié)議處理程序。獲得 URL對(duì)象的途徑之一是調(diào)用 URI對(duì)象的 toURL()方法。但是這種選擇不一定方便 , 作為代替 , 可以調(diào)用 URL 構(gòu)造函數(shù)來(lái)建立 URL 對(duì)象 , 也可以調(diào)用 URL 的方法來(lái)提取 URL的組件,打開(kāi)一個(gè)輸入流( input stream)從資源中讀取信息,獲得某個(gè)能方便檢索資源數(shù)據(jù)的對(duì)象的引用,比較兩個(gè) URL對(duì)象中的 URL,獲得到資源的連接對(duì)象,該連接對(duì)象允許代碼了解(并寫(xiě)入)更多的資源的信息。 URL類(lèi)有六個(gè)構(gòu)造函數(shù)。其中最簡(jiǎn)單的是 URL(String url),它有一個(gè) String類(lèi)型的參數(shù),把 URL分解為自己的組件,并把這些組件存儲(chǔ)在一個(gè)新的 URL對(duì)象中。如果某個(gè) URL沒(méi)有包含協(xié)議處理程序或該 URL的協(xié)議是未知的,其它的五個(gè)構(gòu)造函數(shù)會(huì)產(chǎn)生一個(gè) 對(duì)象。 下面的代碼展示了 網(wǎng)絡(luò)爬蟲(chóng)調(diào)用網(wǎng)絡(luò) API 提供的 URL類(lèi) 從目標(biāo)服務(wù)器獲取數(shù)據(jù)保存到緩沖區(qū)中的過(guò)程 。 模擬瀏覽器源程 序 如下所示: boolean messagedig() throws Exception { URL url。 第 9 頁(yè) 共 21 頁(yè) HttpURLConnection 。 urlstream = null。 url = new URL()。 try { = (HttpURLConnection) ()。 (UserAgent, Mozilla/)。 ()。 urlstream = ()。 } catch (Exception e) { // TODO 自動(dòng)生成 catch 塊 (錯(cuò)誤的 URL 地址 +url)。 return false。 } reader = new . BufferedReader(new (urlstream))。 String currentline=,sumstring = 。 try{ while((currentline=())!=null){ sumstring+=currentline。//保存在網(wǎng)絡(luò)緩沖區(qū)中 } setMessage(sumstring)。 new String((),gbk)。 } catch( e){ (錯(cuò)誤的文件格式: +())。 } return true。 } 正則表達(dá)式 正則表達(dá)式是一門(mén)語(yǔ)言。有許多正則表達(dá)式語(yǔ)法、選項(xiàng)和特殊字符,在 源文件中大家可以查看??赡鼙认胂?中的要復(fù)雜。組合邏輯是下一步的事情 。 只要正確運(yùn)用,正則表達(dá)式能夠在字符串提取和文本修改中起到很大的作用 。 第 10 頁(yè) 共 21 頁(yè) 正則表達(dá)式在本程序中的作用是分析網(wǎng)頁(yè) 中存在的 超鏈接 并 保存到等待隊(duì)列中 , 方便爬蟲(chóng) 遍歷網(wǎng)頁(yè) 獲取數(shù)據(jù) , 并把網(wǎng)頁(yè)中存在的音樂(lè)信息提取出來(lái)為爬蟲(chóng)儲(chǔ)存數(shù)據(jù)做準(zhǔn)備 。 ( 1) 句點(diǎn)符號(hào) 假設(shè)你在玩英文拼字游戲,想要找出三個(gè)字母的單詞,而且這些單詞必須以“t”字母開(kāi)頭,以 “n”字母結(jié)束。另外,假設(shè)有一本英文字典,你可以用正則表達(dá)式搜索它的全部?jī)?nèi)容。要構(gòu)造出這個(gè)正則表達(dá)式,你可以使用一個(gè)通配符 ——句點(diǎn)符號(hào) “.”。這樣,完整的 表達(dá)式就是 “”,它匹配 “tan”、 “ten”、 “tin”和 “ton”,還匹配 “tn”、 “tpn”甚至 “t n”,還有其他許多無(wú)意義的組合。這是因?yàn)榫潼c(diǎn)符號(hào)匹配所有字符,包括空格、 Tab 字符甚至換行符 如: ① 正則表達(dá)式 : ② 匹配: tan,Ten,tin,ton,t n,tn,tpn,等。 ( 2) 方括號(hào)符號(hào) 為了解決句點(diǎn)符號(hào)匹配范圍過(guò)于廣泛這一問(wèn)題,你可以在方括號(hào)( “[]”)里面指定看來(lái)有意義的字符。此時(shí),只有方括號(hào)里面指定的字符才參與匹配。也就是說(shuō),正則表達(dá)式 “t[aeio]n”只匹配 “tan”、 “Ten”、 “tin”和 “ton”。但 “Toon”不匹配,因?yàn)樵诜嚼ㄌ?hào)之內(nèi)你只能匹配單個(gè)字符: ① 正則表達(dá)式 :t[aeio]n ② 匹配 :tan,Ten,tin,ton ( 3) “或 ”符號(hào) 如果除了上面匹配的所有單詞之外,你還想要匹配 “toon”,那么,你可以使用 “|”操作符。 “|”操作符的基本意義就是 “或 ”運(yùn)算。要匹配 “toon”,使用“t(a|e|i|o|oo)n”正則表達(dá)式。這里不能使用方擴(kuò)號(hào),因?yàn)榉嚼ㄌ?hào)只允許匹配單個(gè)字符;這里必須使用圓括號(hào) “()”。圓括號(hào)還可以用來(lái)分組,具體請(qǐng)參見(jiàn)后面介紹。 ① 正則表達(dá)式 :t(a|e|i|o|oo)n ② 匹配 :tan,Ten,tin,ton,toon ( 4) 表示匹配次數(shù)的符號(hào) 表 顯示了表示匹配次數(shù)的符號(hào),這些符號(hào)用來(lái)確定緊靠該符號(hào)左邊的符號(hào)出現(xiàn)的次數(shù) 。 表 表示次數(shù)的符號(hào) 符號(hào) 次數(shù) 0 次或者多次 + 1 次或者多次 ? 0 次或者一次 第 11 頁(yè) 共 21 頁(yè) {n} 恰好 n 次 {n,m} 從 n 次到 m 次 假設(shè)要在文本文件中搜索美國(guó)的社會(huì)安全號(hào)碼。這個(gè)號(hào)碼的格式是999999999。用來(lái)匹配它的正則表達(dá)式如圖一所示。在正則表達(dá)式中,連字符( “”)有著特殊的意義,它表示一個(gè)范圍,比如從 0 到 9。因此,匹配社會(huì)安全號(hào)碼中的連字符號(hào)時(shí),它的前面要加上一個(gè)轉(zhuǎn)義字符 “\”。 正則表達(dá) 源程序 如下: public class CompareStr { public boolean parestring(String oristring,String tostring) //判斷是否存在指定表達(dá)式 { Pattern p=null。 //正則表達(dá)式 Matcher m=null。 //操作的 字符串 boolean b。 p = (oristring,)。 m = (tostring)。 b = ()。 return b。 } public String replace(String origin,String toString,String s){//替換字符 Pattern p=null。 Matcher m=null。 p=(origin,)。 m=(toString)。 return (s)。 } public String getString(String reg,String s){//返回得到的字符 String res。 Pattern p=null。 Matcher m=null。 p=(reg,)。 m=(s)。 if(()){ return ()。 第 12 頁(yè) 共 21 頁(yè) } 數(shù)據(jù)分析 因?yàn)?Web 中的信息都是建立在 HTML 協(xié)議之上的,所以網(wǎng)絡(luò)機(jī)器人在檢索網(wǎng)頁(yè)時(shí)的第一個(gè)問(wèn)題就是如何解析 HTML。在解決如何解析之前,先來(lái)介紹HTML中的幾種數(shù)據(jù) 。 ① 文本:除了腳本和標(biāo)簽之外的所有數(shù)據(jù) 。 ② 注釋?zhuān)撼绦騿T留下的說(shuō)明文字,對(duì)用戶是不可見(jiàn)的 。 ③ 簡(jiǎn)單標(biāo)簽:由單個(gè)表示的 HTML標(biāo)簽 。 ④ 開(kāi)始標(biāo)簽和結(jié)束標(biāo)簽:用來(lái)控制所包含的 HTML代碼 。 在進(jìn)行解析的時(shí)候不用關(guān)心所有的標(biāo)簽,只需要對(duì)其中一種重要的進(jìn)行解析即可。 本軟件只關(guān)心 超連接標(biāo)簽 ,下面介紹了在本軟件中如何使用。 ( 1) 超連接標(biāo)簽 超連接定義了 WWW通過(guò) Inter 鏈接文檔的功能。他們的主要目的是使用戶能夠任意遷移到新的頁(yè)面,這正是網(wǎng)絡(luò)爬蟲(chóng)最關(guān)心的標(biāo)簽。 public ArrayList linkAnalyzer() //分析網(wǎng)頁(yè)上存在的超鏈接 .保存在等待隊(duì)列中 public List mp3analyzer() //分析網(wǎng)頁(yè)上存在的音樂(lè)超鏈接和音樂(lè)名稱(chēng) .保存到數(shù)據(jù)庫(kù)中方便查詢(xún) ( 2) 超鏈接分析 以下是本軟件所用到的 關(guān)鍵源程序 ( 超鏈接 ),代碼如下: if((href,firstword)amp。amp。({)0amp。amp。f(})0amp。amp。(39。)0amp。amp。(。)0amp。amp。(.css)0amp。amp。(.ico)0amp。amp。!(mp3)){ String out=null。 out=(href=|\,firstword,)。 if(( (out)。 } else{//相對(duì)的路徑 try{ if((html)||(htm)){ int m=(/)。 String s=(0,m)。 第 13 頁(yè) 共 21 頁(yè) webadd=s。 (debug+s+/+out)。 } } catch(StringIndexOutOfBoundsException e ){ } if((/)){ /*int m=(/)。 webadd=(0,m)。 (dafa+webadd)。 */ out=webadd+out。 (out)。 } else{ out=webadd+/+out。 (out)。 } } } i++。 } 采用 java 多線程技術(shù) 線程是 Java 的一大 特性 ,它可以是給定的指令序列、給定的方法中定義的變量或者一些共享數(shù)據(jù) (類(lèi)一級(jí)的變量 )。在 Java中每個(gè)線程有自己的堆棧和程序計(jì)數(shù)器( PC),其中堆棧是用來(lái)跟蹤線程的上下文(上下文
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1