[發(fā)明專利]深度鏈接獲取方法和裝置在審
| 申請?zhí)枺?/td> | 201710007365.0 | 申請日: | 2017-01-05 |
| 公開(公告)號: | CN106997374A | 公開(公告)日: | 2017-08-01 |
| 發(fā)明(設計)人: | 黃冬 | 申請(專利權)人: | 深圳大宇無限科技有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 廣州華進聯(lián)合專利商標代理有限公司44224 | 代理人: | 謝曲曲 |
| 地址: | 518000 廣東省深圳市南山*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 深度 鏈接 獲取 方法 裝置 | ||
技術領域
本發(fā)明涉及計算機技術,特別是涉及一種深度鏈接獲取方法和裝置。
背景技術
隨著當今互聯(lián)網(wǎng)的飛速發(fā)展,各種網(wǎng)絡信息的內(nèi)容日益豐富。作為網(wǎng)絡信息主要承載形式的萬維網(wǎng)被應用了大量復雜技術例如Adobe Flash、Ajax、連接加密等來呈現(xiàn)內(nèi)容,以提高用戶體驗和安全性。由于大量內(nèi)容是網(wǎng)頁加載后由JavaScript動態(tài)生成的,導致一些深度鏈接難以抓取和利用。
傳統(tǒng)的網(wǎng)絡爬蟲在抓取網(wǎng)頁數(shù)據(jù)時,只能抓取具有特殊關鍵字符的數(shù)據(jù),但很多網(wǎng)站并不會將所有的內(nèi)容都直接輸出到一個頁面中,部分數(shù)據(jù)需要通過JavaScript處理才能得到,還有些內(nèi)容可能需要用戶觸發(fā)才會被加載。所以傳統(tǒng)的爬蟲無法抓取深度鏈接的網(wǎng)頁數(shù)據(jù)。而目前解決這些限制的一般做法需要運行一套完整的瀏覽器環(huán)境以獲取這些動態(tài)內(nèi)容。由于完整的瀏覽器環(huán)境需要較大的資源開銷并且速度較慢,會導致深度鏈接的抓取成本高而且效率低。
發(fā)明內(nèi)容
基于此,有必要針對深度鏈接抓取成本高、效率低的問題,提供一種開銷比較低且效率比較高的深度鏈接獲取方法和裝置。
一種深度鏈接獲取方法,所述方法包括:獲取目標頁面的地址;根據(jù)所述目標頁面的地址下載所述目標頁面并獲取適用于所述目標頁面的配置文件;根據(jù)所述配置文件中的配置規(guī)則從所述目標頁面中提取與目標深度鏈接相關的目標數(shù)據(jù)以及提取解析所述目標數(shù)據(jù)所需要的函數(shù)和變量;根據(jù)提取出的所述目標數(shù)據(jù)、函數(shù)和變量獲取目標深度鏈接。
在其中一個實施例中,所述根據(jù)提取出的所述目標數(shù)據(jù)、函數(shù)和變量獲取目標深度鏈接的步驟包括:獲取所述配置文件中的觸發(fā)代碼;將所述觸發(fā)代碼、解析所述目標數(shù)據(jù)所述需要的函數(shù)和變量進行組合得到組合代碼;調(diào)用運行引擎運行所述組合代碼,根據(jù)運行的結果解析所述目標數(shù)據(jù)得到所述目標深度鏈接。
在其中一個實施例中,所述根據(jù)所述配置文件中的配置規(guī)則從所述目標頁面中提取與目標深度鏈接相關的目標數(shù)據(jù)以及提取解析所述目標數(shù)據(jù)所需要的函數(shù)和變量的步驟包括:根據(jù)所述配置文件中預設的字段從所述目標頁面中提取與目標深度鏈接相關的目標數(shù)據(jù);根據(jù)所述配置文件中預設的正則表達式從所述目標頁面中提取解析所述目標數(shù)據(jù)所需要的第一函數(shù);通過語法分析獲取所述第一函數(shù)的依賴關系;根據(jù)所述依賴關系提取所述第一函數(shù)依賴的第二函數(shù)和變量;所述根據(jù)提取出的所述目標數(shù)據(jù)、函數(shù)和變量獲取目標深度鏈接的步驟包括:根據(jù)提取出的所述目標數(shù)據(jù)、第一函數(shù)、第二函數(shù)和變量獲取目標深度鏈接。
在其中一個實施例中,根據(jù)所述依賴關系提取所述第一函數(shù)依賴的第二函數(shù)和變量的步驟包括:根據(jù)所述依賴關系從所述目標頁面的源代碼中以及從與所述目標深度鏈接相關聯(lián)的外部頁面的源代碼中獲取所述第一函數(shù)依賴的第二函數(shù)和變量。
在其中一個實施例中,在根據(jù)所述依賴關系提取所述第一函數(shù)依賴的第二函數(shù)和變量的步驟之前還包括:檢測緩存內(nèi)是否存在與所述目標深度鏈接相關聯(lián)的外部頁面的源代碼;若不存在,則獲取與所述目標深度鏈接相關聯(lián)的外部頁面的源代碼,將獲取到的所述外部頁面的源代碼存入所述緩存內(nèi)。
一種深度鏈接獲取裝置,所述裝置包括:地址獲取模塊,用于獲取目標頁面的地址;下載模塊,用于根據(jù)所述目標頁面的地址下載所述目標頁面;配置文件獲取模塊,用于根據(jù)所述目標頁面的地址獲取適用于所述目標頁面的配置文件;提取模塊,用于根據(jù)所述配置文件中的配置規(guī)則從所述目標頁面中提取與目標深度鏈接相關的目標數(shù)據(jù)以及提取解析所述目標數(shù)據(jù)所需要的函數(shù)和變量;深度鏈接獲取模塊,用于根據(jù)提取出的所述目標數(shù)據(jù)、函數(shù)和變量獲取目標深度鏈接。
在其中一個實施例中,所述深度鏈接獲取模塊包括:觸發(fā)代碼獲取模塊,用于獲取所述配置文件中的觸發(fā)代碼;組合模塊,用于將所述觸發(fā)代碼、解析所述目標數(shù)據(jù)的函數(shù)和變量進行組合得到組合代碼;調(diào)用模塊,用于調(diào)用運行引擎運行所述組合代碼,根據(jù)運行的結果解析所述目標數(shù)據(jù)得到所述目標深度鏈接。
在其中一個實施例中,所述提取模塊包括:目標數(shù)據(jù)提取模塊,用于根據(jù)所述配置文件中預設的字段從所述目標頁面中提取與目標深度鏈接相關的目標數(shù)據(jù);第一函數(shù)提取模塊,用于根據(jù)所述配置文件中預設的正則表達式從所述目標頁面中提取解析所述目標數(shù)據(jù)所需要的第一函數(shù);分析模塊,用于通過語法分析獲取所述第一函數(shù)的依賴關系;第二函數(shù)提取模塊,用于根據(jù)所述依賴關系提取所述第一函數(shù)依賴的第二函數(shù)和變量;所述深度鏈接獲取模塊還用于根據(jù)提取出的所述目標數(shù)據(jù)、第一函數(shù)、第二函數(shù)和變量獲取目標深度鏈接。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于深圳大宇無限科技有限公司,未經(jīng)深圳大宇無限科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201710007365.0/2.html,轉載請聲明來源鉆瓜專利網(wǎng)。





