亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種網(wǎng)絡(luò)學(xué)習(xí)資源聚合查詢的方法和系統(tǒng)與流程

文檔序號(hào):12825084閱讀:365來(lái)源:國(guó)知局
一種網(wǎng)絡(luò)學(xué)習(xí)資源聚合查詢的方法和系統(tǒng)與流程

本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)領(lǐng)域,具體涉及一種網(wǎng)絡(luò)學(xué)習(xí)資源聚合查詢的方法和系統(tǒng)。



背景技術(shù):

目前,internet上的各種學(xué)習(xí)資源(如課件、教學(xué)視頻、學(xué)習(xí)文檔等)已經(jīng)非常豐富,很多學(xué)習(xí)者都喜歡搜索網(wǎng)絡(luò)學(xué)習(xí)資源進(jìn)行自學(xué),很多教師也喜歡搜索課件等學(xué)習(xí)資源進(jìn)行備課。人們最常用的方法是使用通用搜索引擎(如百度)搜索這些學(xué)習(xí)資源。

但是,使用通用搜索引擎搜索學(xué)習(xí)資源一般只能搜索到一些零散的資源,而近年來(lái)我國(guó)的各大出版社都注重加強(qiáng)教材書(shū)籍的配套資源建設(shè),許多出版社網(wǎng)站上已經(jīng)積累了豐富的教材配套教學(xué)資源。這類教學(xué)資源一般由書(shū)籍作者提供,比較系統(tǒng)。另一方面,我國(guó)的很多慕課網(wǎng)站、精品課網(wǎng)站也積聚了大量的課程資源,但這些網(wǎng)站上海量的教學(xué)資源在百度等搜索引擎上卻幾乎搜索不到,因?yàn)樗阉饕娴乃阉髋老x(chóng)無(wú)法將用戶任意輸入的關(guān)鍵詞傳遞到目標(biāo)網(wǎng)站的表單中獲得搜索結(jié)果列表。

如果用戶分別去訪問(wèn)每家出版社或課程網(wǎng)站,再逐個(gè)輸入關(guān)鍵詞搜索每個(gè)網(wǎng)站上的教學(xué)資源,那將是一件非常繁瑣的事情。一種解決方案是:讓每個(gè)搜索目標(biāo)網(wǎng)站提供結(jié)構(gòu)化數(shù)據(jù)(如json或xml數(shù)據(jù))的接口,則可采用ajax(asynchronousjavascriptandxml,異步j(luò)avascript和xml)或curl(commandlineuniformresourcelocator,命令行統(tǒng)一資源定位器)技術(shù)去獲取目標(biāo)網(wǎng)站的結(jié)構(gòu)化數(shù)據(jù),再將其聚合到結(jié)果網(wǎng)站中。

第二種方案是:利用出版社的搜索接口,進(jìn)行統(tǒng)一查詢,將查詢得到的數(shù)據(jù)進(jìn)行結(jié)構(gòu)化處理之后存儲(chǔ)到本地?cái)?shù)據(jù)庫(kù)中,再對(duì)本地?cái)?shù)據(jù)庫(kù)進(jìn)行查詢,這種方式的查詢速度較快,但由于復(fù)制了出版社網(wǎng)站的內(nèi)容到本地存儲(chǔ)中,會(huì)引發(fā)版權(quán)糾紛問(wèn)題。

總之,目前的網(wǎng)絡(luò)學(xué)習(xí)資源聚合查詢方案,至少存在下列一點(diǎn)或幾點(diǎn)不足:①需要目標(biāo)網(wǎng)站提供結(jié)構(gòu)化的數(shù)據(jù)和訪問(wèn)接口;②需要將從目標(biāo)網(wǎng)站中采集的內(nèi)容結(jié)構(gòu)化處理后存儲(chǔ)到本地?cái)?shù)據(jù)庫(kù)中,由于復(fù)制了目標(biāo)網(wǎng)站的內(nèi)容到本地,將可能導(dǎo)致版權(quán)糾紛問(wèn)題;③復(fù)制內(nèi)容到本地?cái)?shù)據(jù)庫(kù)中查詢,不能保證查詢的是目標(biāo)網(wǎng)站中的最新內(nèi)容;④需要目標(biāo)網(wǎng)站提供數(shù)據(jù)庫(kù)結(jié)構(gòu)或其他技術(shù)支持。



技術(shù)實(shí)現(xiàn)要素:

為了克服需要目標(biāo)網(wǎng)站提供技術(shù)支持,以及需要將采集的數(shù)據(jù)進(jìn)行結(jié)構(gòu)化處理的缺點(diǎn),且不引起版權(quán)糾紛,滿足個(gè)性化搜索的需要。提出了本發(fā)明,以便提供一種克服上述問(wèn)題或者至少部分地解決上述問(wèn)題的方法。

根據(jù)本發(fā)明,提供了一種網(wǎng)絡(luò)學(xué)習(xí)資源聚合查詢的方法,包括以下步驟:

第一步:將所有要查詢的目標(biāo)網(wǎng)站的網(wǎng)址、編碼、http請(qǐng)求方式等信息保存在數(shù)據(jù)庫(kù)的一個(gè)表(設(shè)表名為sites,sites表中的字段有id,name,url,charset,pregmatch,valid,postdata,imgsrcp,asrcp,sort,descp)中,如果要新增查詢的網(wǎng)站,只需將新網(wǎng)站的信息作為一條記錄插入到sites表中。

第二步:本系統(tǒng)在網(wǎng)頁(yè)上提供一個(gè)表單供用戶輸入搜索關(guān)鍵詞。

第三步:獲取所述搜索關(guān)鍵詞,根據(jù)sites表中charset字段記錄的目標(biāo)網(wǎng)站的編碼類型,將關(guān)鍵詞進(jìn)行url編碼,使關(guān)鍵詞轉(zhuǎn)換后的字符編碼與所述目標(biāo)網(wǎng)站的字符編碼相同。

第四步:使用curl多線程函數(shù)將編碼后的關(guān)鍵詞同時(shí)發(fā)送到各個(gè)目標(biāo)網(wǎng)站的搜索處理頁(yè)(sites表中的url字段保存了所述搜索處理頁(yè)的網(wǎng)址),如果sites表中postdata字段值不為空,則以post方式將關(guān)鍵詞嵌入到postdata字段值中再發(fā)送給目標(biāo)網(wǎng)站,如果postdata字段值為空,則以get方式發(fā)送關(guān)鍵詞數(shù)據(jù)給目標(biāo)網(wǎng)站。

第五步:定義一個(gè)數(shù)組,接收各個(gè)所述目標(biāo)網(wǎng)站返回的搜索結(jié)果頁(yè)面的html代碼。

第六步:對(duì)返回的所有所述html代碼進(jìn)行統(tǒng)一編碼(如統(tǒng)一轉(zhuǎn)換成utf-8編碼)。

第七步:提取搜索結(jié)果列表區(qū)域:首先采用人工方法(如借助chrome瀏覽器的“檢查”功能)找到搜索結(jié)果列表區(qū)域的起始代碼,然后再根據(jù)首尾代碼人工寫(xiě)出匹配整個(gè)區(qū)域的正則表達(dá)式代碼,將其保存在sites表的pregmatch字段中,,最后使用正則表達(dá)式匹配函數(shù)(如preg_match)提取所述html代碼中的搜索結(jié)果內(nèi)容部分。

第八步:修正所述html代碼中圖像和超鏈接中的相對(duì)url地址。首先使用dom(documentobjectmodel,文檔對(duì)象模型)操作類(例如simplehtmldom)找到返回所述html代碼中的所有a元素和img元素,然后在其src屬性值前添加原網(wǎng)站的域名和路徑前綴字符串(sites表中的asrc字段和imgsrcp字段保存了所述前綴字符串)。

第九步:在本系統(tǒng)中載入修正后的搜索結(jié)果列表區(qū)域代碼。分別將每段修正后的代碼載入到一個(gè)html容器元素中。

第十步:為搜索結(jié)果列表添加樣式代碼,對(duì)所有所述html容器元素進(jìn)行樣式布局和美化并輸出到本系統(tǒng)的搜索結(jié)果頁(yè)中。

進(jìn)一步地,提供一個(gè)后臺(tái)管理系統(tǒng),供用戶添加、刪除、修改所述目標(biāo)網(wǎng)站的信息,用戶可設(shè)置valid字段的值是否搜索指定的目標(biāo)網(wǎng)站,設(shè)置sort屬性的值來(lái)實(shí)現(xiàn)對(duì)所述目標(biāo)網(wǎng)站的排序。

本發(fā)明的優(yōu)點(diǎn)在于:不需要將從目標(biāo)網(wǎng)站獲取的非結(jié)構(gòu)化數(shù)據(jù)轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù);不需要在本系統(tǒng)的服務(wù)器端存儲(chǔ)從目標(biāo)網(wǎng)站獲取得到的數(shù)據(jù),從而不會(huì)產(chǎn)生版權(quán)糾紛;不需要目標(biāo)網(wǎng)站提供任何技術(shù)支持,滿足個(gè)性化搜索需要,簡(jiǎn)單實(shí)用。

附圖說(shuō)明

圖1為本發(fā)明實(shí)施的工作原理流程圖。

圖2為依據(jù)本發(fā)明一實(shí)施例的網(wǎng)頁(yè)(該實(shí)施例的首頁(yè))顯示界面的示范性示意圖。

圖3為依據(jù)本發(fā)明一實(shí)施例的網(wǎng)頁(yè)(該實(shí)施例的搜索結(jié)果頁(yè))顯示界面示意圖。

具體實(shí)施方式

下面結(jié)合附圖并通過(guò)具體實(shí)施方式來(lái)進(jìn)一步說(shuō)明本發(fā)明的技術(shù)方案。

本發(fā)明技術(shù)方案的主要思想是采用curl多線程函數(shù)同時(shí)向若干個(gè)目標(biāo)網(wǎng)站發(fā)送查詢請(qǐng)求和查詢關(guān)鍵字,使用正則表達(dá)式提取所述目標(biāo)網(wǎng)站返回代碼中的搜索結(jié)果列表區(qū)域,再對(duì)所述返回代碼中的url進(jìn)行修正,最后將這些所述返回代碼載入到本系統(tǒng)的搜索結(jié)果頁(yè)中。

該實(shí)施例包括瀏覽器端和服務(wù)器端,兩者之間可通過(guò)網(wǎng)絡(luò)連接,也可將瀏覽器端和服務(wù)器端部署在同一臺(tái)計(jì)算機(jī)上,在服務(wù)器端安裝并配置有web服務(wù)器軟件apache、mysql和curl擴(kuò)展插件。

該實(shí)施例的工作流程包括以下步驟:

步驟101:將所有要查詢的目標(biāo)網(wǎng)站的網(wǎng)址、編碼等信息保存在數(shù)據(jù)庫(kù)的一個(gè)表中,該表的結(jié)構(gòu)如下:

sites(id,name,url,charset,pregmatch,valid,postdata,imgsrcp,asrcp,sort,descp)

各字段的含義對(duì)應(yīng)如下:

sites(序號(hào),網(wǎng)站名,網(wǎng)站搜索入口url,網(wǎng)站的編碼類型,內(nèi)容區(qū)域的正則表達(dá)式匹配碼,是否有效,存儲(chǔ)post數(shù)據(jù),圖像url地址前綴,超鏈接url地址前綴,排序,描述)

如果要新增要查詢的網(wǎng)站,只需將新網(wǎng)站的信息添加到sites表中即可。

步驟102:如圖2所示,該實(shí)施例在網(wǎng)頁(yè)上提供一個(gè)搜索表單供用戶輸入搜索關(guān)鍵詞。

步驟103:獲取表單中的所述關(guān)鍵詞,根據(jù)sites表中記錄的目標(biāo)網(wǎng)站的編碼類型,將關(guān)鍵詞進(jìn)行url編碼,使關(guān)鍵詞轉(zhuǎn)換后的編碼與目標(biāo)網(wǎng)站的編碼相同。

步驟104:使用curl多線程函數(shù)將編碼后的關(guān)鍵詞同時(shí)發(fā)送給各個(gè)目標(biāo)網(wǎng)站的搜索處理頁(yè)。所述搜索處理頁(yè)的網(wǎng)址為sites表中url字段的值,如果sites表中postdata字段值不為空,則以post方式將關(guān)鍵詞嵌入到postdata字段值中再發(fā)送給目標(biāo)網(wǎng)站,如果postdata字段值為空,則以get方式發(fā)送關(guān)鍵詞數(shù)據(jù)給目標(biāo)網(wǎng)站。

其中postdata字段值是采用人工方法(如借助chrome瀏覽器的“檢查”功能)分析目標(biāo)網(wǎng)站向服務(wù)器發(fā)送http請(qǐng)求中的post數(shù)據(jù)得到的,例如:

method1=1&keyzy=name&keyword=

將其預(yù)先保存在postdata字段中。

步驟105:定義一個(gè)數(shù)組,接收各個(gè)目標(biāo)網(wǎng)站返回的搜索結(jié)果頁(yè)面的html代碼。

步驟106:對(duì)返回的所有所述html代碼進(jìn)行統(tǒng)一編碼(如統(tǒng)一轉(zhuǎn)換成utf-8編碼)。

步驟107:提取搜索結(jié)果列表區(qū)域:首先采用人工方法借助(如chrome瀏覽器的“檢查”功能)找到搜索結(jié)果列表區(qū)域的起始代碼,然后再根據(jù)首尾代碼人工寫(xiě)出匹配整個(gè)區(qū)域的正則表達(dá)式代碼,將其保存在數(shù)據(jù)表的pregmatch字段中,最后使用正則表達(dá)式匹配函數(shù)preg_match提取其中的內(nèi)容部分。

步驟108:修正圖像和超鏈接中的相對(duì)url地址。首先使用dom(文檔對(duì)象模型)操作類(simple_html_dom)找到返回代碼中的所有a元素和img元素,然后在其src屬性值前添加原網(wǎng)站的域名和路徑前綴字符串(sites表中的asrc字段和imgsrcp字段保存了所述前綴字符串)。

步驟109:載入修正后的所述搜索結(jié)果列表區(qū)域代碼。如圖3所示,本實(shí)施例將每個(gè)網(wǎng)站返回的html代碼分別放置到一個(gè)類名為cbs的div中,并在其上方添加一個(gè)h2標(biāo)記用來(lái)放置出版社名或課程網(wǎng)站名,以及一個(gè)“more”鏈接,用于鏈接到目標(biāo)網(wǎng)站的原始搜索列表頁(yè)。

步驟110:為所述搜索結(jié)果列表添加css樣式代碼。為了版面布局和美化的需要,該實(shí)施例利用css設(shè)置所有采集的目標(biāo)網(wǎng)站中的圖片為同一大小,文字為同一顏色和大小,對(duì)所述搜索結(jié)果列表中的每個(gè)列表項(xiàng)設(shè)置float屬性,使其文本位于圖片右側(cè)排列,并對(duì)每個(gè)所述列表項(xiàng)設(shè)置:after偽元素選擇器清除浮動(dòng)。

為完善功能,本實(shí)施例利用ajax技術(shù)對(duì)搜索結(jié)果頁(yè)添加瀑布流效果。即最初所述搜索結(jié)果頁(yè)只載入搜索結(jié)果的一部分,當(dāng)用戶向下滾動(dòng)所述搜索結(jié)果頁(yè)時(shí)再繼續(xù)載入下一部分內(nèi)容。

為完善功能,本實(shí)施例提供一個(gè)后臺(tái)管理系統(tǒng),供用戶添加、刪除、修改所述目標(biāo)網(wǎng)站的信息,并且,用戶還可設(shè)置valid字段的值是否搜索指定的目標(biāo)網(wǎng)站,設(shè)置sort屬性的值來(lái)實(shí)現(xiàn)對(duì)所述目標(biāo)網(wǎng)站的排序。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1