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

正文內(nèi)容

基于廣度優(yōu)先算法的多線程爬蟲程序畢業(yè)設(shè)計-資料下載頁

2025-06-27 20:37本頁面
  

【正文】 后返回,而這是極其低效的。 可以對使用 DataInputStream 進行按原文輸入的程序進行本地化,方法是用合適的 BufferedReader 替換每個 DataInputStream。如下代碼:BufferedReader reader = new BufferedReader(new FileReader(fp))。初始化一個 Bufferedreader 類型的變量 reader 首先將文文件存儲地址(字符串)轉(zhuǎn)換成文件路徑,使文件內(nèi)容可讀,如果文件路徑違法(不是常規(guī)檔類型或者檔不存在)會拋出異常。如果文件路徑合法,文件內(nèi)容合法,內(nèi)容可讀取,初始化 Bufferedreader類型變量 ,使文件內(nèi)容可逐行被讀取。如下代碼:String strTempWhile( (strTemp = ()) != null);可以獲得一行文本內(nèi)容,讀取之后自動跳到下一行。當讀取內(nèi)容為空時,判斷文檔讀取結(jié)束。獲得URL后,調(diào)用函數(shù)沈陽理工大學(xué)學(xué)士學(xué)位論文24strHtml = (strUrl, 60 * 1000, utf8, null, proxy)。getHtmlText函數(shù):public static String getHtmlText(String strUrl, int timeout,String strEnCoding, String cookies, Proxy proxy)strUrl 網(wǎng)址字符串timeout 超時設(shè)置strEnCoding 網(wǎng)頁編碼cookies 網(wǎng)頁cookiesCookies是我們?yōu)g覽的網(wǎng)站傳輸?shù)接脩粲嬎銠C硬盤中的文本文件或內(nèi)存中的數(shù)據(jù),可以當作緩存來記,就是你第一次打開某網(wǎng)站然后關(guān)了在開一下相對第一次會快點,因為第一次的記錄在COOKIES里儲存了,第二次在開那就直接可以調(diào)可它這樣就會快點!Proxy 代理設(shè)置獲得網(wǎng)頁源代碼首先要獲得網(wǎng)頁鏈接:將 String 類型的變量 strURL 轉(zhuǎn)換為 URL 類型:URL url = new URL(strUrl)。URL 有三部分組成 : 協(xié)議, 域名 , 所在目錄的超級鏈接。為了使用個多的 API 自帶的函數(shù),將 url 轉(zhuǎn)換成 HttpURLConnection 類型。代碼:Connection = (HttpURLConnection) ()。此處的 Connection 對象實際上是根據(jù) URL 的請求協(xié)議(此處是 )生成的URLConnection 類的子類 HttpURLConnection,故此處最好將其轉(zhuǎn)化為HttpURLConnection 類型的對象 ,以便用到 HttpURLConnection 更多的 API. 返回一個 URLConnection 對象,它表示到 URL 所引用的遠程對象的連接。 每次調(diào)用此 URL 的協(xié)議處理程序的 openConnection 方法都打開一個新的連接。真正建立連接 發(fā)送連接請求:InputStream urlStream = ()。InputStream 此抽象類是表示字節(jié)輸入流的所有類的超類。程序可以從中連續(xù)讀取字節(jié)的對象叫輸入流,用 InputStream 類來描述所有輸入流的抽象概念。調(diào)用 HttpURLConnection 連接對象的 getInputStream()函數(shù),將內(nèi)存緩沖區(qū)中封裝好的完整的 HTTP 請求電文發(fā)送到服務(wù)端。讀入的數(shù)據(jù)放入緩存結(jié)束后讀取BufferedInputStream buff = new BufferedInputStream(urlStream)。BufferedInputStream 作為另一種輸入流,BufferedInputStream 為添加了功能,即緩沖輸沈陽理工大學(xué)學(xué)士學(xué)位論文25入和支持 mark 和 reset 方法的能力。創(chuàng)建 BufferedInputStream 時即創(chuàng)建了一個內(nèi)部緩沖區(qū)數(shù)組。讀取或跳過流中的各字節(jié)時,必要時可根據(jù)所包含的輸入流再次填充該內(nèi)部緩沖區(qū),一次填充多個字節(jié)。mark 操作記錄輸入流中的某個點,reset 操作導(dǎo)致在從所包含的輸入流中獲取新的字節(jié)前,再次讀取自最后一次 mark 操作以來所讀取的所有字節(jié)。 InputStreamReader r = new InputStreamReader(buff)。InputStreamReader:InputStreamReader 是字節(jié)流通向字符流的橋梁:它使用指定的 charset 讀取字節(jié)并將其譯碼為字符。它使用的字符集可以由名稱指定或顯式給定,否則可能接受平臺默認的字符集。 每次調(diào)用 InputStreamReader 中的一個 read() 方法都會導(dǎo)致從基礎(chǔ)輸入流讀取一個或多個字節(jié)。要啟用從字節(jié)到字符的有效轉(zhuǎn)換,可以提前從基礎(chǔ)流讀取更多的字節(jié),使其超過滿足當前讀取操作所需的字節(jié)。 新建一個 Bufferedreader 類型變量: BufferedReader br = null。用來一行行讀取讀入的緩存中的網(wǎng)頁源代碼 。在申請一個字符串,把讀取的字符串放入一個字符串中。while ((strLine = ()) != null) {(strLine + \r\n)。} 使用 append 把讀入的 字符串添加到一個新的字符產(chǎn)中并添加回車 。 獲得網(wǎng)頁源代碼后,刪除冗余的信息,找到通用的標志位置:HtmlStarSign 為起始標志位置,HtmlEndSign 為皆為標志。String HtmlStarSign = TD width=\230\ align=right bgcolor=\F8F8F8\ style=\paddingright:10px\。String HtmlEndSign = SCRIPT LANGUAGE=\JavaScript\。 得到標志后調(diào)用函數(shù):strHtml = (strHtml, HtmlStarSign,HtmlEndSign)。 從字符串的頭開始檢索與 HtmlStarSign 完全相符的字符串:int iSPos = (strStart, pos)。函數(shù) public int indexOf(int ch, int fromIndex)從指定的索引開始搜索,返回在此字符串中第一次出現(xiàn)指定字符處的索引。在此對象表示的字符序列中第一次出現(xiàn)的大于或等于 fromIndex 的字符的索引,如果未出現(xiàn)該字符,則返回 1。返回的整形數(shù)標志了起始沈陽理工大學(xué)學(xué)士學(xué)位論文26標志字符串的起始位置,在查找戒指標志時要從起始字符串的結(jié)束位置開始查找 iEPos = (strEnd, iSPos + ())。得到字符串結(jié)尾標志的位置。調(diào)用函數(shù)public String substring(int beginIndex, int endIndex)返回一個新字符串,它是此字符串的一個子字符串。該子字符串從指定的 beginIndex 處開始,一直到索引 endIndex 1 處的字符。因此,該子字符串的長度為 endIndexbeginIndex。調(diào)用函數(shù):String strTemp = (iSPos + (), iEPos)。得到想要的包括頁面主要信息的部分。此時得到的網(wǎng)頁源代碼包含很多網(wǎng)頁標簽空格,為了使提取信息詳情更加簡單,用自編的函數(shù)去除多余的網(wǎng)頁卷標,網(wǎng)頁卷標的格式為尖括號內(nèi)的值,如下網(wǎng)頁源代碼 :meta charset=utf8 /title360 導(dǎo)航_新一代安全上網(wǎng)導(dǎo)航 /titlelink rel=dnsprefetch href=///meta name=description content=360 導(dǎo)航 新一代安全上網(wǎng)導(dǎo)航,為用戶提供門戶、新聞、視頻、游戲、小說、彩票等各種分類的優(yōu)秀內(nèi)容和網(wǎng)站入口,提供最簡單便捷的上網(wǎng)導(dǎo)航服務(wù)。安全上網(wǎng),從 360 導(dǎo)航開始。 /meta name=keywords content=360 導(dǎo)航,網(wǎng)址之家,網(wǎng)址大全,網(wǎng)址導(dǎo)航,360 安全網(wǎng)址,360 網(wǎng)址大全,上網(wǎng)導(dǎo)航,網(wǎng)址 /base target=_blank/取出后的結(jié)果應(yīng)為:360 導(dǎo)航_新一代安全上網(wǎng)導(dǎo)航。調(diào)用函數(shù):strHtml = (strHtml)。去除多余卷標,函數(shù)有一個標記符 flag flag 最開始賦值為 0,當遇到“”時 flag 的值為 1 當 flag 為 1 時 只讀取的字符而不在錄入到新的字符串中,這樣就去除了標簽的內(nèi)容,當讀取到“”時 flag 從新被賦值為 0 。讀取字符被錄入到字符串中。建立一個新的類 BeanSon 用于存儲過濾后的頁面信息 Beason 包含:String StandardNo = 。String StandardTiCh = 。沈陽理工大學(xué)學(xué)士學(xué)位論文27String StandardTiEn = 。String IssuDate = 。String ExcuDate = 。String FirstIssDate = 。String StandardState = 。String ReviewAffiDate = 。String PlanNo = 。String ReplaceStandard = 。String ReplacedStandard = 。String RevocatoryDate = 。String AdopInteStandNo = 。String AdopInteStandName = 。String AppliDegree = 。String AdopInteStand = 。String ICS = 。String CCS = 。String StandSort = 。String NumberofPages = 。String Price = 。String Governor = 。String TecCommittees = 。String DrafCommittee = 。這些變量用于存儲解析后要保存的具體內(nèi)容,逐一將內(nèi)容存入到這個對象中。每解析一個網(wǎng)頁就建立一個 bean 便于程序下一步將獲取的信息存入獨立的 XML 文檔。XML 文檔的生成寫入首先建立一個 document 類型的對象并且初始化: Document doc = ()。 Document 可以看做是 XML 在內(nèi)存中的鏡像,那么一旦對 document 操作就相當于對XML 操作。沈陽理工大學(xué)學(xué)士學(xué)位論文28建立一個 Element 類型的節(jié)點 變量名為 RootElement 顯示出來的卷標為“doc”。Element rootElement = (doc)。Element 界面表示 HTML 或 XML 文文件中的一個元素。元素可能有與它們相關(guān)的屬性;由于 Element 接口繼承自 Node,所以可以使用一般 Node 接口屬性 attributes 來獲得元素所有屬性的集合。Element 接口上有通過名稱獲得 Attr 對象或通過名稱獲得屬性值的方法。在 XML 中(其中的屬性值可能包含實體引用),應(yīng)該獲得 Attr 對象來檢查表示屬性值的可能相當復(fù)雜的子樹。另一方面,在 HTML 中(其中的所有屬性都有簡單的字符串值),可以使用直接訪問屬性值的方法,這既安全又便捷。 (rootElement)。將 建立好的節(jié)點放在 doc 上,作為根節(jié)點調(diào)用 public static void addElement(Element rootElement, String strLab,String strVal)添加子節(jié)點到根節(jié)點下,第一個參數(shù)為 要添加節(jié)點的父節(jié)點,第二個為新節(jié)點的標簽,第三個為新節(jié)點的值。反復(fù)調(diào)用此函數(shù),將對象 bean 內(nèi)的值逐一添加到在節(jié)點中,其中變量名稱為卷標,變量值為節(jié)點值;如:addElement(rootElement, Governor, ())。這個函數(shù)是 java 自帶函數(shù)的從定義,在這個函數(shù)內(nèi)部,需要調(diào)用自帶函數(shù) Element titleElement = (strLab)。if (null == strVal) {strVal = 。}(strVal)。當所有節(jié)點添加進來后,一個完整的 XML 文檔已經(jīng)在緩存中形成,但是并不是真正存在,在這之后,要將緩存中的內(nèi)容寫入到硬盤中,設(shè)定文件保存路徑,將文件的StandNo 作為檔的名稱,建立一個空白的 XML 文文件 ,調(diào)用函數(shù)public static boolean write(Document doc, String strFileName, String strUrl);doc 為剛才建立的在緩存中的 XML 文檔,strFileName 為將要建立的文件名稱,strUrl為該網(wǎng)頁的鏈接地址,防止在建立文檔時出錯,以便記錄再次下載。在建立 XML 文檔時需要先新建一個 XMLWriter 類型的對象, XMLWriter 類型是一個專用接口,用來方便地擴展 SyncProvider 抽象類以用于面向 XML 的同步提供程序。 提供 XML 數(shù)據(jù) writer 功能(如輸出 XML 流功能)的 SyncProvider 實現(xiàn)可以實現(xiàn)沈陽理工大學(xué)學(xué)士學(xué)位論文29此接口,以向 WebRowSet 實現(xiàn)提供標準 XmlWriter 對象。 編寫 WebRowSet 對象包括打印 rowset 的數(shù)據(jù)、元數(shù)據(jù)和屬性,都使用適當?shù)?XML 標記。調(diào)用系統(tǒng)函數(shù)writer = new XMLWriter
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1