[發(fā)明專利]網(wǎng)絡(luò)爬蟲系統(tǒng)有效
| 申請?zhí)枺?/td> | 201210495699.4 | 申請日: | 2012-11-28 |
| 公開(公告)號: | CN103853717B | 公開(公告)日: | 2018-10-12 |
| 發(fā)明(設(shè)計)人: | 劉濤 | 申請(專利權(quán))人: | 北京京東尚科信息技術(shù)有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 上海弼興律師事務(wù)所 31283 | 代理人: | 薛琦;王婧荷 |
| 地址: | 100195 北京市海淀區(qū)杏石口路6*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 網(wǎng)絡(luò) 爬蟲 | ||
本發(fā)明公開了一種網(wǎng)絡(luò)爬蟲,包括一內(nèi)核以及一Ajax抓取配置,該內(nèi)核以及該Ajax抓取配置均集成有htmlunit,該Ajax抓取配置用于指定一網(wǎng)頁的地址以及該網(wǎng)頁中的待抓取的數(shù)據(jù),該內(nèi)核用于驅(qū)動搜索引擎,并基于該Ajax抓取配置提取該待抓取的數(shù)據(jù)。本發(fā)明能夠支持Ajax的執(zhí)行方式抓取網(wǎng)頁頁面的數(shù)據(jù),并且支持異步請求的技術(shù),可以使用JavaScript向服務(wù)器提出請求并處理響應(yīng),而且不會阻塞用戶。
技術(shù)領(lǐng)域
本發(fā)明涉及一種網(wǎng)絡(luò)爬蟲系統(tǒng),特別是涉及一種能夠支持Ajax爬取并通過異步請求從網(wǎng)頁中提取數(shù)據(jù)的網(wǎng)絡(luò)爬蟲系統(tǒng)。
背景技術(shù)
傳統(tǒng)的網(wǎng)絡(luò)爬蟲能夠?qū)崿F(xiàn)非Ajax(一種創(chuàng)建交互式網(wǎng)頁應(yīng)用的網(wǎng)頁開發(fā)技術(shù))的爬取過程,即不需要模擬瀏覽器加載頁面并且執(zhí)行頁面中的JavaScript(一種動態(tài)、弱類型、基于原型的語言,通過瀏覽器可以直接執(zhí)行)腳本。而傳統(tǒng)的網(wǎng)絡(luò)爬蟲雖然能夠抓取網(wǎng)頁中的數(shù)據(jù),但是只能抓取同步請求的數(shù)據(jù),并不能及時的對異步請求進行響應(yīng)和處理,導(dǎo)致可能會阻塞用戶。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是為了克服現(xiàn)有技術(shù)中傳統(tǒng)的網(wǎng)絡(luò)爬蟲不能對異步請求進行響應(yīng)和處理導(dǎo)致會阻塞用戶的缺陷,提供一種能夠支持Ajax爬取并通過異步請求從網(wǎng)頁中提取數(shù)據(jù)的網(wǎng)絡(luò)爬蟲系統(tǒng)。
本發(fā)明是通過下述技術(shù)方案來解決上述技術(shù)問題的:
本發(fā)明提供了一種網(wǎng)絡(luò)爬蟲系統(tǒng),其特點在于,其包括一內(nèi)核以及一Ajax抓取配置,該內(nèi)核以及該Ajax抓取配置均集成有htmlunit(一種開源的java(一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言)頁面分析工具),該Ajax抓取配置用于指定一網(wǎng)頁的地址以及該網(wǎng)頁中的待抓取的數(shù)據(jù),該內(nèi)核用于驅(qū)動搜索引擎,并基于該Ajax抓取配置提取該待抓取的數(shù)據(jù)。
與傳統(tǒng)的網(wǎng)絡(luò)爬蟲相比,本發(fā)明的網(wǎng)絡(luò)爬蟲系統(tǒng)的內(nèi)核及Ajax抓取配置都集成有htmlunit,并且支持直接用腳本語言使用htmlunit的功能。這樣,該Ajax抓取配置在執(zhí)行方式上就需要一個模擬的瀏覽器加載該網(wǎng)頁的頁面并且執(zhí)行該網(wǎng)頁需要執(zhí)行的JavaScript腳本(其中包括異步請求),并且在加載完成之后,還支持通過該Ajax抓取配置來模擬用戶操作,例如點擊按鈕、提交表單等,然后再根據(jù)元素路徑提取該網(wǎng)頁的頁面中的元素所需要的值,例如內(nèi)容、鏈接、圖像識別結(jié)果等。
這樣,通過XmlHttpRequest對象(Ajax的網(wǎng)頁應(yīng)用程序架構(gòu)的一項關(guān)鍵功能,能夠提供在不重新加載頁面的情況下更新網(wǎng)頁的功能)向服務(wù)器發(fā)送異步請求,從服務(wù)器獲取數(shù)據(jù),然后用JavaScript來操作DOM(文檔對象模型)而更新頁面,而JavaScript則可以及時向服務(wù)器提出異步請求和處理響應(yīng),而不會阻塞用戶。
通過上述方式就能夠以Ajax形式來抓取網(wǎng)頁中的數(shù)據(jù),這些數(shù)據(jù)主要是指商品信息,包括商品名稱、價格、圖片、庫存狀態(tài)、用戶評論等內(nèi)容。
較佳地,該Ajax抓取配置的root(根)節(jié)點下設(shè)置有Ajax節(jié)點,該內(nèi)核還用于在讀取該Ajax節(jié)點的內(nèi)容后加載該網(wǎng)頁的頁面并執(zhí)行包含有異步請求的JavaScript腳本以抓取該待抓取的數(shù)據(jù)。
較佳地,該Ajax節(jié)點包括操作類元素和提取類元素,該操作類元素用于模擬用戶的操作,該提取類元素用于指定該待抓取的數(shù)據(jù)。
其中,網(wǎng)絡(luò)爬蟲的實現(xiàn)都是基于一種樹形結(jié)構(gòu)的數(shù)據(jù),該樹形結(jié)構(gòu)中的每一個節(jié)點都可以被當作是一棵子樹的根節(jié)點,即root節(jié)點。而在傳統(tǒng)的網(wǎng)絡(luò)爬蟲的抓取配置中,定義了兩種方式進行數(shù)據(jù)的爬取,第一種是純腳本的爬取方式,即如果在抓取配置的root節(jié)點下存在一個Custom節(jié)點(一種節(jié)點的名稱)的話,網(wǎng)絡(luò)爬蟲將直接執(zhí)行該Custom節(jié)點中的腳本內(nèi)容,若該root節(jié)點下存在一個Getting節(jié)點(一種節(jié)點的名稱),網(wǎng)絡(luò)爬蟲則按照抓取配置中的定義對該Getting節(jié)點進行解析執(zhí)行。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于北京京東尚科信息技術(shù)有限公司,未經(jīng)北京京東尚科信息技術(shù)有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210495699.4/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 網(wǎng)絡(luò)和網(wǎng)絡(luò)終端
- 網(wǎng)絡(luò)DNA
- 網(wǎng)絡(luò)地址自適應(yīng)系統(tǒng)和方法及應(yīng)用系統(tǒng)和方法
- 網(wǎng)絡(luò)系統(tǒng)及網(wǎng)絡(luò)至網(wǎng)絡(luò)橋接器
- 一種電力線網(wǎng)絡(luò)中根節(jié)點網(wǎng)絡(luò)協(xié)調(diào)方法和系統(tǒng)
- 一種多網(wǎng)絡(luò)定位方法、存儲介質(zhì)及移動終端
- 網(wǎng)絡(luò)裝置、網(wǎng)絡(luò)系統(tǒng)、網(wǎng)絡(luò)方法以及網(wǎng)絡(luò)程序
- 從重復(fù)網(wǎng)絡(luò)地址自動恢復(fù)的方法、網(wǎng)絡(luò)設(shè)備及其存儲介質(zhì)
- 神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法、裝置及存儲介質(zhì)
- 網(wǎng)絡(luò)管理方法和裝置
- 檢測反爬蟲策略安全性的方法及裝置
- 一種監(jiān)控網(wǎng)絡(luò)爬蟲的方法、裝置和系統(tǒng)
- 一種通過爬蟲狀態(tài)機管理爬蟲的方法及裝置
- 爬蟲協(xié)議管理方法及裝置、爬蟲系統(tǒng)
- 基于APP客戶端的爬蟲及爬取方法
- 視頻業(yè)務(wù)處理方法、裝置及電子設(shè)備
- 一種爬蟲方法、裝置、系統(tǒng)、設(shè)備及可讀存儲介質(zhì)
- 分布式爬蟲系統(tǒng)架構(gòu)、爬取數(shù)據(jù)的方法和計算機設(shè)備
- 基于scrapy爬蟲框架的數(shù)據(jù)采集系統(tǒng)及方法
- 多中心綜合網(wǎng)絡(luò)爬蟲系統(tǒng)





