一種網頁數據采集方法、裝置及系統的制作方法
【技術領域】
[0001]本申請涉及互聯網領域,尤其涉及一種網頁數據采集方法、裝置及系統。
【背景技術】
[0002]在網站的SEO(Search Engine Optimizat1n,搜索引擎優化)建設過程中,為了能夠準確了解到站點現階段的總體優化情況,會產生一些對第三方站點或平臺的數據采集需求,通過對采集到的各類信息進行分析從而制定下一步的網站優化策略。
[0003]目前,主要通過互聯網加載第三方站點或平臺的網頁數據來采集第三方站點或平臺的數據。加載網頁數據主要包括同步和異步兩種加載方式。同步方加載方式,為請求直接返回HTML頁面。異步加載方式,在頁面返回后,通過加載JS (JavaScript,一種直譯式腳本語言)方式改變頁面原有結構從而加載出數據。在得到返回的HTML頁面之后,可以對HTML頁面進行解析,將有用的數據提取分離出來,比如可以抽取出新浪網新聞頻道里的某個新聞的標題。
[0004]由于制定網站優化策略的數據需求量較大,因此,需要批量采集第三方站點或平臺的網頁數據。然而,由于不同網頁數據加載方式可能不同,為了保證數據采集結果的準確性,只能統一采取異步加載的方式。但是,由于JS執行需要消耗額外的時間,對于本來同步就能加載出的數據會額外消耗大量硬件資源和時間,導致數據采集效率較低。
【發明內容】
[0005]有鑒于此,本申請的目的在于提供一種網頁數據采集方法、裝置及系統以實現提高數據采集效率的目的。
[0006]在本申請實施例的第一個方面,提供了一種網頁數據采集方法。例如,該方法可以包括:接收批量采集數據的請求,其中,所述請求攜帶有目標網址信息;確定所述目標網址信息對應的可成功采集目標數據的采集策略,其中,所述目標網址信息對應的采集策略具體通過對該目標網址信息進行至少包括同步加載測試的目標數據采集測試獲得,所述采集策略包括同步加載方式或異步加載方式;根據所述目標網址信息對應的采集策略中設置的同步加載方式或異步加載方式,采取相應的加載方式采集所述目標網址信息指向的網頁中的目標數據。
[0007]在本申請實施例的第二個方面,提供了一種網頁數據采集裝置。例如,該裝置可以包括:請求接收單元,可以用于接收批量采集數據的請求,其中,所述請求攜帶有目標網址信息。策略確定單元,可以用于確定所述目標網址信息對應的可成功采集目標數據的采集策略,其中,所述目標網址信息對應的采集策略具體通過對該目標網址信息進行至少包括同步加載測試的目標數據采集測試獲得,所述采集策略包括同步加載方式或異步加載方式。采集單元,可以用于根據所述目標網址信息對應的采集策略中設置的同步加載方式或異步加載方式,采取相應的加載方式采集所述目標網址信息指向的網頁中的目標數據。
[0008]在本申請實施例的第三個方面,提供了一種網頁數據采集系統。例如,該系統可以包括:客戶端,可以用于發出批量采集數據的請求,其中,所述請求攜帶有目標網址信息。采集策略配置服務器,可以用于接收客戶端發送的批量采集數據的請求,確定所述請求攜帶的目標網址信息對應的可成功采集目標數據的采集策略,其中,所述目標網址信息對應的采集策略具體通過對該目標網址信息進行至少包括同步加載測試的目標數據采集測試獲得,所述采集策略包括同步加載方式或異步加載方式,以及,生成用于根據所述目標網址信息對應的采集策略中設置的同步加載方式或異步加載方式,采取相應的加載方式采集所述目標網址信息指向的網頁中的目標數據的采集任務,將所述采集任務分發給采集服務器集群中的采集服務器。采集服務器集群,可以用于接收采集策略配置服務器分發的采集任務,執行所述采集任務,反饋采集到的目標數據。
[0009]可見本申請具有如下有益效果:
[0010]由于本申請實施例在接收批量采集數據的請求之后,根據請求攜帶的目標網址信息確定了對應的可成功采集目標數據的采集策略,而該采集策略是通過對該目標網址信息進行至少包括同步加載測試的目標數據采集測試獲得的,因此,如果目標網址信息對應的網頁以同步加載方式能夠采集出目標數據,則測試得到的可成功采集目標數據的采集策略中包含的加載方式就可以是同步加載方式,從而采取采集策略中設置的同步加載方式采集數據,使同步就能加載出的數據可以避免采用異步加載方式加載,避免造成資源和時間的額外消耗,因此,本申請實施例在保證成功采集到目標數據的同時,可以有效提高數據采集效率。
【附圖說明】
[0011]為了更清楚地說明本申請實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請中記載的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動性的前提下,還可以根據這些附圖獲得其他的附圖。
[0012]圖1為本申請實施例公開的一種網頁數據采集方法流程示意圖;
[0013]圖2為本申請實施例公開的一種網頁數據采集裝置結構示意圖;
[0014]圖3為本申請實施例公開的一種網頁數據采集系統結構示意圖。
【具體實施方式】
[0015]為了使本技術領域的人員更好地理解本申請中的技術方案,下面將結合本申請實施例中的附圖,對本申請實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本申請一部分實施例,而不是全部的實施例。基于本申請中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其他實施例,都應當屬于本發明保護的范圍。
[0016]—般來說,由于JS執行需要消耗額外的時間,對同一個頁面結構如果不執行JS,則執行效率會有一定提升。基于這個原理,在批量采集網頁數據前,如果能夠對頁面數據的加載方式進行至少包括同步加載測試的有效分析測試,則可以區分出可同步加載目標數據的網址信息以及必須異步加載目標數據的網址信息,并設置對應的可成功采集目標數據的采集策略。這樣,在批量采集數據時,可以根據與目標網址信息對應的采集策略,采取其中設置的同步加載方式或異步加載方式采集數據,使本來同步就能加載出的數據可以避免采用異步加載方式加載,從而避免造成資源和時間的額外消耗,可以有效的提高數據采集效率。
[0017]例如,參見圖1,為本申請實施例提供的一種網頁數據采集方法流程示意圖。如圖1所示,該方法可以包括:
[0018]S110、接收批量采集數據的請求,其中,所述請求攜帶有目標網址信息。
[0019]例如,所接收的批量采集數據的請求,可以攜帶有用戶在前端頁面上輸入的批量采集配置信息。假設要批量采集1688站點搜索頁面在檢索不同關鍵詞時的搜索結果數據。那么批量采集配置信息可以包括:目標網址信息“//s.1688.com/selloffer/offer_search, htm ? keywords = $ {keyword} &button_click = to p&n = y,,。其中,$ {keyword}可以替換成不同的關鍵詞,目標數據的HTML標簽可以配置成id:breadCrumbText I class
[O]: sm-navigatebar-count | text,表不抽取 breadCrumbText 這個 HTML 標簽下面第一個sm-navigatebar-count class下的純文本。其中,批量采集配置信息也可以配置成XPath的描述方式,本申請對此并不進行限制。可以理解的是,批量采集配置信息還可以按照用戶自己的需求選擇性配置其他參數,本申請對此并不進行限制。
[0020]另外,根據實際需要,如果除了用戶提交的批量采集配置信息之外,還需要從其他文件中讀取相關參數,則還需要對用于保存該參數的相關文件與相關文件存儲地址的映射關系進行設置,以便進行數據采集測試時根據映射關系讀取到文件中的參數。例如,在批量采集1688站點搜索頁面在搜索不同關鍵詞時的搜索結果數據的應用場景中,用戶提交的關鍵詞文件可以按照指定地址下載到用于執行數據采集測試的機器上,同時,設置并保存關鍵詞文件與存儲地址的映射關系,例如,〃tas