欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

網(wǎng)頁腳本動(dòng)態(tài)生成的鏈接的提取方法及裝置的制造方法

文檔序號(hào):9667449閱讀:696來源:國知局
網(wǎng)頁腳本動(dòng)態(tài)生成的鏈接的提取方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別是涉及一種網(wǎng)頁腳本動(dòng)態(tài)生成的鏈接的提取方法及裝置。
【背景技術(shù)】
[0002]搜索引擎的網(wǎng)絡(luò)蜘蛛是通過網(wǎng)頁的鏈接地址來尋找網(wǎng)頁的,先從網(wǎng)站某一個(gè)頁面開始,讀取頁面內(nèi)容,并提取網(wǎng)頁中的統(tǒng)一資源定位符(Uniform Resource Locator,簡(jiǎn)稱URL),然后通過這些URL鏈接地址,尋找下一個(gè)網(wǎng)頁,按照此方法循環(huán)下去。通常情況下,URL鏈接存在于超文本標(biāo)記語言(HyperText Markup Language,簡(jiǎn)稱HTML)網(wǎng)頁的<a>標(biāo)簽的href屬性中,網(wǎng)絡(luò)蜘蛛僅需要遍歷HTML網(wǎng)頁的所有節(jié)點(diǎn),找出其中<a>標(biāo)簽的href屬性即可。但是對(duì)于網(wǎng)頁中某些程序代碼(例如:Java腳本(Javascript)代碼)執(zhí)行后動(dòng)態(tài)生成的URL鏈接,網(wǎng)絡(luò)蜘蛛沒有更好的方法將其抽取出來。
[0003]通常情況下,對(duì)于這些動(dòng)態(tài)生成的URL鏈接,網(wǎng)絡(luò)蜘蛛先加載瀏覽器內(nèi)核引擎,下載完網(wǎng)頁后,將網(wǎng)頁中的某些程序代碼(例如Javascript代碼)在瀏覽器內(nèi)核引擎中執(zhí)行一次,這樣就可以得到被修改過的HTML網(wǎng)頁,此時(shí),網(wǎng)絡(luò)蜘蛛可以采用普通鏈接抽取的方法進(jìn)行鏈接抽取。但是,該解決方法存在以下缺點(diǎn):
[0004]程序代碼(例如Javascript代碼)在瀏覽器內(nèi)核引擎執(zhí)行后,生成的鏈接不一定會(huì)表現(xiàn)在修改過的HTML網(wǎng)頁中,這種情況下網(wǎng)絡(luò)蜘蛛就抽取不到該鏈接地址。此外,按照該方法進(jìn)行鏈接抽取,需要將某些程序代碼逐一執(zhí)行,會(huì)占用較大的工作資源,尤其是代碼量較大的情況下,資源耗費(fèi)更多,可行性低。

【發(fā)明內(nèi)容】

[0005]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的一種網(wǎng)頁腳本動(dòng)態(tài)生成的鏈接的提取方法及裝置。
[0006]基于本發(fā)明的一個(gè)方面,提供了一種網(wǎng)頁腳本動(dòng)態(tài)生成的鏈接的提取方法,包括:
[0007]獲取網(wǎng)頁中的腳本代碼;
[0008]根據(jù)所述腳本代碼的語言規(guī)則對(duì)所述腳本語言進(jìn)行分割,將所述腳本語言分割為至少一個(gè)獨(dú)立語句;
[0009]對(duì)各獨(dú)立語句進(jìn)行鏈接特征分析,提取其中存在的鏈接。
[0010]可選地,所述對(duì)各獨(dú)立語句進(jìn)行鏈接特征分析,包括:
[0011 ] 對(duì)各獨(dú)立語句的架構(gòu)進(jìn)行解析,獲取各層架構(gòu)中的鏈接特征參數(shù)。
[0012]可選地,獨(dú)立語句使用嵌入函數(shù)實(shí)現(xiàn)多層架構(gòu)。
[0013]可選地,獲取各層架構(gòu)中的鏈接特征參數(shù),包括:
[0014]獲取當(dāng)前層架構(gòu)中的變量和/或常量;
[0015]根據(jù)設(shè)定規(guī)則對(duì)所述當(dāng)前層架構(gòu)中的變量和/或常量進(jìn)行計(jì)算,得到計(jì)算結(jié)果;
[0016]對(duì)所述計(jì)算結(jié)果進(jìn)行鏈接特征分析,以確定其中是否存在鏈接特征。
[0017]可選地,按如下步驟獲取當(dāng)前層架構(gòu)中的變量:
[0018]檢測(cè)當(dāng)前層架構(gòu)中是否存在var name = value型或其變種;
[0019]若是,則獲取var name = value型或其變種對(duì)應(yīng)的變量;
[0020]若否,則確定當(dāng)前層架構(gòu)中不存在變量。
[0021]可選地,按如下步驟獲取當(dāng)前層架構(gòu)中的常量:
[0022]獲取當(dāng)前層架構(gòu)中由單引號(hào)和/或雙引號(hào)限定的所有常量。
[0023]可選地,若常量?jī)蓚?cè)不緊鄰加號(hào),則該常量本身具備鏈接特征。
[0024]可選地,根據(jù)所述腳本代碼的語言規(guī)則對(duì)所述腳本語言進(jìn)行分割,包括:
[0025]根據(jù)所述語言規(guī)則確定各獨(dú)立語句的分割點(diǎn);
[0026]使用所述語言規(guī)則中設(shè)定的分隔符在所述分割點(diǎn)對(duì)所述腳本語言進(jìn)行分割。
[0027]可選地,所述分隔符包括分號(hào)。
[0028]可選地,對(duì)各獨(dú)立語句進(jìn)行鏈接特征分析,提取其中存在的鏈接,包括:
[0029]查找網(wǎng)頁各節(jié)點(diǎn)的<a>標(biāo)簽中的href屬性;
[0030]從所述href屬性中提取鏈接。
[0031]基于本發(fā)明的另一個(gè)方面,提供了一種網(wǎng)頁腳本動(dòng)態(tài)生成的鏈接的提取裝置,包括:
[0032]獲取模塊,適于獲取網(wǎng)頁中的腳本代碼;
[0033]分割模塊,適于根據(jù)所述腳本代碼的語言規(guī)則對(duì)所述腳本語言進(jìn)行分割,將所述腳本語言分割為至少一個(gè)獨(dú)立語句;
[0034]提取模塊,適于對(duì)各獨(dú)立語句進(jìn)行鏈接特征分析,提取其中存在的鏈接。
[0035]可選地,所述提取模塊還適于:
[0036]對(duì)各獨(dú)立語句的架構(gòu)進(jìn)行解析,獲取各層架構(gòu)中的鏈接特征參數(shù)。
[0037]可選地,獨(dú)立語句使用嵌入函數(shù)實(shí)現(xiàn)多層架構(gòu)。
[0038]可選地,所述提取模塊還適于:
[0039]獲取當(dāng)前層架構(gòu)中的變量和/或常量;
[0040]根據(jù)設(shè)定規(guī)則對(duì)所述當(dāng)前層架構(gòu)中的變量和/或常量進(jìn)行計(jì)算,得到計(jì)算結(jié)果;
[0041]對(duì)所述計(jì)算結(jié)果進(jìn)行鏈接特征分析,以確定其中是否存在鏈接特征。
[0042]可選地,所述提取模塊還適于按如下步驟獲取當(dāng)前層架構(gòu)中的變量:
[0043]檢測(cè)當(dāng)前層架構(gòu)中是否存在var name = value型或其變種;
[0044]若是,則獲取var name = value型或其變種對(duì)應(yīng)的變量;
[0045]若否,則確定當(dāng)前層架構(gòu)中不存在變量。
[0046]可選地,所述提取模塊還適于按如下步驟獲取當(dāng)前層架構(gòu)中的常量:
[0047]獲取當(dāng)前層架構(gòu)中由單引號(hào)和/或雙引號(hào)限定的所有常量。
[0048]可選地,若常量?jī)蓚?cè)不緊鄰加號(hào),則該常量本身具備鏈接特征。
[0049]可選地,所述分割模塊還適于:
[0050]根據(jù)所述語言規(guī)則確定各獨(dú)立語句的分割點(diǎn);
[0051]使用所述語言規(guī)則中設(shè)定的分隔符在所述分割點(diǎn)對(duì)所述腳本語言進(jìn)行分割。
[0052]可選地,所述分隔符包括分號(hào)。
[0053]可選地,所述提取模塊還適于:
[0054]查找網(wǎng)頁各節(jié)點(diǎn)的<a>標(biāo)簽中的href屬性;
[0055]從所述href屬性中提取鏈接。
[0056]按照本發(fā)明實(shí)施例中的方法,根據(jù)腳本代碼的語言規(guī)則對(duì)腳本語言進(jìn)行分割,被分割的語句通常是完整的獨(dú)立語句,避免隨便分割所導(dǎo)致的語句不完整,不完整的語句會(huì)人為造成解析困難,也不會(huì)出現(xiàn)語句中的有效部分誤中斷的問題,例如語句中的鏈接被分割開,因此,獨(dú)立語句的分割保證了鏈接提取的流暢度,另外,對(duì)腳本代碼進(jìn)行分割,對(duì)分割得到的獨(dú)立語句進(jìn)行鏈接特征提取,不會(huì)出現(xiàn)鏈接提取疏漏的情況,保證了鏈接提取的完整度。此外,本發(fā)明實(shí)施例對(duì)各獨(dú)立語句進(jìn)行鏈接特征分析,僅僅是將每個(gè)獨(dú)立語句中包含鏈接特征的代碼按照設(shè)定的處理方法抽取出來,相對(duì)于現(xiàn)有技術(shù)中提供的將各獨(dú)立語句中的代碼一一執(zhí)行后再抽取鏈接的技術(shù)方案,本發(fā)明實(shí)施例提供的方法無須將相應(yīng)代碼一一執(zhí)行,占用更少的工作資源,能夠極大縮短鏈接提取的時(shí)間,并且,對(duì)執(zhí)行腳本代碼的終端而言,無須執(zhí)行代碼也避免了因代碼量過大造成的系統(tǒng)負(fù)載過重所導(dǎo)致的終端系統(tǒng)崩潰等情況。因此,本發(fā)明實(shí)施例采用的鏈接提取方法相對(duì)于現(xiàn)有技術(shù)而言,資源耗費(fèi)低,可行性尚ο
[0057]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實(shí)施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點(diǎn)能夠更明顯易懂,以下特舉本發(fā)明的【具體實(shí)施方式】。
[0058]根據(jù)下文結(jié)合附圖對(duì)本發(fā)明具體實(shí)施例的詳細(xì)描述,本領(lǐng)域技術(shù)人員將會(huì)更加明了本發(fā)明的上述以及其他目的、優(yōu)點(diǎn)和特征。
【附圖說明】
[0059]通過閱讀下文優(yōu)選實(shí)施方式的詳細(xì)描述,各種其他的優(yōu)點(diǎn)和益處對(duì)于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實(shí)施方式的目的,而并不認(rèn)為是對(duì)本發(fā)明的限制。而且在整個(gè)附圖中,用相同的參考符號(hào)表示相同的部件。在附圖中:
[0060]圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的網(wǎng)頁腳本動(dòng)態(tài)生成的鏈接的提取方法的處理流程圖;
[0061]圖2示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的獲取獨(dú)立語句的語句架構(gòu)中的鏈接特征參數(shù)的一種處理流程圖;
[0062]圖3示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的Javascript代碼動(dòng)態(tài)生成的鏈接的提取方法的處理流程圖;以及
[0063]圖4示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的網(wǎng)頁腳本動(dòng)態(tài)生成的鏈接的提取裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0064]下面將參照附圖更詳細(xì)地描述本公開的示例性實(shí)施例。雖然附圖中顯示了本公開的示例性實(shí)施例,然而應(yīng)當(dāng)理解,可以以各種形式實(shí)現(xiàn)本公開而不應(yīng)被這里闡述的實(shí)施例所限制。相反,提供這些實(shí)施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0065]為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種網(wǎng)頁腳本動(dòng)態(tài)生成的鏈接的提取方法。圖1示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的網(wǎng)頁腳本動(dòng)態(tài)生成的鏈接的提取方法的處理流程圖。參見圖1,該方法至少包括以下步驟S102至步驟S106。
[0066]首先執(zhí)行步驟S102,獲取網(wǎng)頁中的腳本代碼。
[0067]隨后執(zhí)行步驟S104,獲取的腳本代碼的語言規(guī)則對(duì)腳本語言進(jìn)行分割,將腳本語言分割為至少一個(gè)獨(dú)立語句。
[0068]腳本代碼在編寫的過程中會(huì)按照一定的語言規(guī)則進(jìn)行,本發(fā)明實(shí)施例需要按照編寫過程中的語言規(guī)則將獲取的腳本代碼進(jìn)行分割,即將網(wǎng)頁后臺(tái)程序?qū)?yīng)的腳本代碼分割成獨(dú)立的語句。根據(jù)語言規(guī)則對(duì)腳本代碼進(jìn)行分割,被分割后的語句通常是完整的語句,避免隨便分割所導(dǎo)致的語句不完整,不完整的語句會(huì)人為造成解析困難,如果其中的鏈接也被分割開,那么會(huì)進(jìn)一步增加鏈接提取的困難度
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
巴彦淖尔市| 枣阳市| 南木林县| 大荔县| 济宁市| 贞丰县| 泾源县| 许昌市| 公安县| 泽库县| 林周县| 海兴县| 金坛市| 青岛市| 宁河县| 临潭县| 子长县| 贡觉县| 巢湖市| 互助| 宁乡县| 开阳县| 游戏| 德安县| 治多县| 屏边| 平阴县| 诏安县| 南昌市| 沽源县| 恭城| 米泉市| 淅川县| 互助| 昌图县| 始兴县| 剑川县| 库车县| 务川| 茌平县| 南靖县|