一種數(shù)據(jù)庫更新方法及裝置制造方法
【專利摘要】本發(fā)明實(shí)施例公開了一種數(shù)據(jù)庫更新方法及裝置,所述方法包括:獲取一分類網(wǎng)址后,獲取所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí);查詢所述第一緩存中是否存在所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),所述第一緩存用于存儲(chǔ)數(shù)據(jù)庫中的對(duì)象標(biāo)識(shí);獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),并根據(jù)所述對(duì)象標(biāo)識(shí)更新所述數(shù)據(jù)庫。本實(shí)施例能夠在減少訪問數(shù)據(jù)庫次數(shù)的基礎(chǔ)上,實(shí)現(xiàn)數(shù)據(jù)庫的更新,并提高了數(shù)據(jù)庫的更新效率。
【專利說明】一種數(shù)據(jù)庫更新方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)處理【技術(shù)領(lǐng)域】,具體涉及一種數(shù)據(jù)庫更新方法及裝置。
【背景技術(shù)】
[0002]隨著社會(huì)信息化的發(fā)展,對(duì)存儲(chǔ)數(shù)據(jù)信息的數(shù)據(jù)庫進(jìn)行更新的要求越來越高。例如,互聯(lián)網(wǎng)和電子商務(wù)的快速發(fā)展,使得越來越多的用戶通過比價(jià)購物網(wǎng)站來精準(zhǔn)的搜索商品以及比較商品價(jià)格。但是,電子商務(wù)網(wǎng)站的商品信息時(shí)刻都在發(fā)生變化,如對(duì)商品的價(jià)格、庫存、標(biāo)題等的調(diào)整,因此傳統(tǒng)的比價(jià)購物網(wǎng)站的數(shù)據(jù)庫往往存在商品信息更新滯后的問題,這使得比價(jià)購物網(wǎng)站的數(shù)據(jù)與電子商務(wù)網(wǎng)站存在較大差異,影響用戶購物體驗(yàn),不能真正實(shí)現(xiàn)通過比較進(jìn)行購物的目的。
【發(fā)明內(nèi)容】
[0003]本發(fā)明提供了一種數(shù)據(jù)庫更新方法及裝置,能夠提高數(shù)據(jù)庫的更新效率。
[0004]本實(shí)施例提供了一種數(shù)據(jù)庫更新方法,所述方法包括:
[0005]獲取一分類網(wǎng)址后,獲取所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí);
[0006]查詢所述第一緩存中是否存在所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),所述第一緩存用于存儲(chǔ)數(shù)據(jù)庫中的對(duì)象標(biāo)識(shí);
[0007]獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),并根據(jù)所述對(duì)象標(biāo)識(shí)更新所述數(shù)據(jù)庫。
[0008]優(yōu)選地,所述方法還包括:
[0009]獲取存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí);
[0010]抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并判斷所述對(duì)象屬性與所述第二緩存中所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性是否相同,所述第二緩存用于存儲(chǔ)所述數(shù)據(jù)庫中的對(duì)象信息,所述對(duì)象信息包括對(duì)象標(biāo)識(shí)和與所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性;
[0011]當(dāng)抓取的所述對(duì)象屬性與所述第二緩存中所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性不同時(shí),根據(jù)抓取的所述對(duì)象屬性更新所述數(shù)據(jù)庫。
[0012]優(yōu)選地,所述方法還包括:
[0013]將所述未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)添加到所述第
一緩存。
[0014]優(yōu)選地,所述獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),并根據(jù)所述對(duì)象標(biāo)識(shí)更新所述數(shù)據(jù)庫,包括:
[0015]獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí);
[0016]抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并將所述對(duì)象標(biāo)識(shí)與所述對(duì)象屬性添加到所述數(shù)據(jù)庫。
[0017]優(yōu)選地,所述抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并將所述對(duì)象標(biāo)識(shí)與所述對(duì)象屬性添加到所述數(shù)據(jù)庫之后,還包括:[0018]利用抓取的對(duì)象屬性更新所述第二緩存。
[0019]優(yōu)選地,所述獲取一分類網(wǎng)址后,獲取所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),包括:
[0020]獲取一分類網(wǎng)址,以及所述分類網(wǎng)址對(duì)應(yīng)的總頁數(shù);
[0021]獲取所述分類網(wǎng)址對(duì)應(yīng)的各個(gè)頁的頁標(biāo)識(shí);
[0022]獲取各個(gè)頁標(biāo)識(shí)對(duì)應(yīng)的對(duì)象標(biāo)識(shí)。
[0023]優(yōu)選地,所述方法還包括:
[0024]獲取所述第一緩存中與所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)不同的對(duì)象標(biāo)識(shí);
[0025]抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并更新所述數(shù)據(jù)庫。
[0026]本實(shí)施例還提供了一種數(shù)據(jù)庫更新裝置,所述裝置包括:
[0027]第一獲取模塊,用于獲取一分類網(wǎng)址后,獲取所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí);
[0028]第一查詢模塊,用于查詢所述第一緩存中是否存在所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),所述第一緩存用于存儲(chǔ)數(shù)據(jù)庫中的對(duì)象標(biāo)識(shí);
[0029]第一更新模塊,用于獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),并根據(jù)所述對(duì)象標(biāo)識(shí)更新所述數(shù)據(jù)庫。
[0030]優(yōu)選地,所述裝置還包括:
[0031]第二獲取模塊,用于獲取存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí);
[0032]第一判斷模塊,用于抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并判斷所述對(duì)象屬性與所述第二緩存中所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性是否相同;
[0033]第二更新模塊,用于當(dāng)抓取的所述對(duì)象屬性與所述第二緩存中所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性不同時(shí),根據(jù)抓取的所述對(duì)象屬性更新所述數(shù)據(jù)庫。
[0034]優(yōu)選地,所述裝置還包括:
[0035]第一添加模塊,用于將所述未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)添加到所述第一緩存。
[0036]優(yōu)選地,所述第一更新模塊,包括:
[0037]第一獲取子模塊,用于獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí);
[0038]第一添加子模塊,用于抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并將所述對(duì)象標(biāo)識(shí)與所述對(duì)象屬性添加到所述數(shù)據(jù)庫。
[0039]優(yōu)選地,所述裝置還包括:
[0040]第三更新模塊,用于利用抓取的對(duì)象屬性更新所述第二緩存。
[0041]優(yōu)選地,所述第一獲取模塊,包括:
[0042]第二獲取子模塊,用于獲取一分類網(wǎng)址,以及所述分類網(wǎng)址對(duì)應(yīng)的總頁數(shù);
[0043]第三獲取子模塊,用于獲取所述分類網(wǎng)址對(duì)應(yīng)的各個(gè)頁的頁標(biāo)識(shí);
[0044]第四獲取子模塊,用于獲取各個(gè)頁標(biāo)識(shí)對(duì)應(yīng)的對(duì)象標(biāo)識(shí)。
[0045]優(yōu)選地,所述裝置還包括:
[0046]第三獲取模塊,用于獲取所述第一緩存中與所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)不同的對(duì)象標(biāo)識(shí);
[0047]第四更新模塊,用于抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并更新所述數(shù)據(jù)庫。[0048]本發(fā)明預(yù)先建立第一緩存,用于存儲(chǔ)數(shù)據(jù)庫中的對(duì)象標(biāo)識(shí),當(dāng)獲取分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)后,查詢所述第一緩存中是否存在所述對(duì)象標(biāo)識(shí),最后獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),并根據(jù)所述對(duì)象標(biāo)識(shí)更新所述數(shù)據(jù)庫。由于訪問緩存的效率比訪問數(shù)據(jù)庫的效率高,所以本實(shí)施例中利用第一緩存存儲(chǔ)數(shù)據(jù)庫中的對(duì)象標(biāo)識(shí),通過判斷第一緩存中是否存在分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),確定數(shù)據(jù)庫是否需要更新。與現(xiàn)有技術(shù)比,本實(shí)施例能夠在減少訪問數(shù)據(jù)庫次數(shù)的基礎(chǔ)上,實(shí)現(xiàn)數(shù)據(jù)庫的更新,并提高了數(shù)據(jù)庫的更新效率。
【專利附圖】
【附圖說明】
[0049]為了更清楚地說明本申請(qǐng)實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0050]圖1為本發(fā)明實(shí)施例一提供的數(shù)據(jù)庫更新方法流程圖;
[0051]圖2為本發(fā)明實(shí)施例一提供的數(shù)據(jù)庫更新方法流程圖;
[0052]圖3為本發(fā)明實(shí)施例二提供的應(yīng)用于比價(jià)購物網(wǎng)站的商品信息數(shù)據(jù)庫更新方法流程圖。
[0053]圖4為本發(fā)明實(shí)施例三提供的數(shù)據(jù)庫更新裝置結(jié)構(gòu)圖;
[0054]圖5為本發(fā)明實(shí)施例三提供的數(shù)據(jù)庫更新裝置結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0055]下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例?;诒旧暾?qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
[0056]實(shí)施例一
[0057]參考圖1,圖1為本實(shí)施例提供的數(shù)據(jù)庫更新方法流程圖,所述方法包括:
[0058]SlOl:獲取一分類網(wǎng)址后,獲取所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)。
[0059]實(shí)際操作中,分類數(shù)據(jù)庫中存儲(chǔ)若干分類網(wǎng)址,本實(shí)施例獲取一個(gè)分類網(wǎng)址后,可以利用爬蟲工具抓取所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)。
[0060]實(shí)際應(yīng)用中,由于一個(gè)分類網(wǎng)址通常對(duì)應(yīng)若干頁的對(duì)象,所以,本實(shí)施例在獲取一個(gè)分類網(wǎng)址后,可以首先獲取所述分類網(wǎng)址對(duì)應(yīng)的總頁數(shù),其次,通過遍歷所述分類網(wǎng)址對(duì)應(yīng)的各個(gè)頁的對(duì)象得到各個(gè)頁的頁標(biāo)識(shí),如各個(gè)頁的網(wǎng)址信息等。最后,可以利用爬蟲工具抓取各個(gè)頁標(biāo)識(shí)對(duì)應(yīng)的對(duì)象標(biāo)識(shí)。
[0061]S102:查詢所述第一緩存中是否存在所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),所述第一緩存用于存儲(chǔ)數(shù)據(jù)庫中的對(duì)象標(biāo)識(shí)。
[0062]本實(shí)施例中,預(yù)先建立第一緩存,并將數(shù)據(jù)庫中的對(duì)象標(biāo)識(shí)存入所述第一緩存。具體的,數(shù)據(jù)庫中存儲(chǔ)了對(duì)象標(biāo)識(shí)和與所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,為了在更新數(shù)據(jù)庫時(shí)減少訪問數(shù)據(jù)庫的次數(shù),本實(shí)施例預(yù)先建立一個(gè)緩存,所述緩存用于存儲(chǔ)數(shù)據(jù)庫中存儲(chǔ)的所有對(duì)象標(biāo)識(shí),其中,所述對(duì)象標(biāo)識(shí)可以為對(duì)象的網(wǎng)址信息等。
[0063]S103:獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),并根據(jù)所述對(duì)象標(biāo)識(shí)更新所述數(shù)據(jù)庫。
[0064]本實(shí)施例中,在獲取所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)后,查詢預(yù)先建立的第一緩存中是否存在所述對(duì)象標(biāo)識(shí)。如果不存在,說明數(shù)據(jù)庫中也不存在所述對(duì)象標(biāo)識(shí),所以,將所述對(duì)象標(biāo)識(shí)更新至所述數(shù)據(jù)庫中。
[0065]具體的,首先獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),其次,利用爬蟲工具分布式抓取該對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并將所述對(duì)象標(biāo)識(shí)與所述對(duì)象屬性添加到所述數(shù)據(jù)庫,實(shí)現(xiàn)所述數(shù)據(jù)庫的更新。
[0066]參考圖2,圖2為本實(shí)施例提供的數(shù)據(jù)庫更新方法流程圖,所述方法包括:
[0067]S201:預(yù)先建立第一緩存,并將數(shù)據(jù)庫中的對(duì)象標(biāo)識(shí)存入所述第一緩存。
[0068]S202:預(yù)先建立第二緩存,并將所述數(shù)據(jù)庫中的對(duì)象信息存入所述第二緩存,所述對(duì)象信息包括對(duì)象標(biāo)識(shí)和與所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性。
[0069]本實(shí)施例中,預(yù)先建立兩個(gè)緩存,分別為第一緩存和第二緩存,第一緩存用于存儲(chǔ)數(shù)據(jù)庫中的對(duì)象標(biāo)識(shí),第二緩存用于存儲(chǔ)數(shù)據(jù)庫中的對(duì)象信息,所述對(duì)象信息包括對(duì)象標(biāo)識(shí)和與所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,其中,對(duì)象標(biāo)識(shí)可以為商品的網(wǎng)址信息,對(duì)象屬性可以為商品的價(jià)格和庫存等。
[0070]S203:獲取一分類網(wǎng)址后,獲取所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)。
[0071]S204:查詢所述第一緩存中是否存在所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),如果是,則進(jìn)入S205,否則進(jìn)入S208。
[0072]本實(shí)施例中,當(dāng)獲取一個(gè)分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)后,在預(yù)先建立的第一緩存中查詢是否存在所述對(duì)象標(biāo)識(shí),如果存在,則執(zhí)行S205,否則執(zhí)行S208。
[0073]S205:獲取存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)。
[0074]S206:抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并判斷所述對(duì)象屬性與所述第二緩存中所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性是否相同,如果不相同,則進(jìn)入S207。
[0075]S207:當(dāng)抓取的所述對(duì)象屬性與所述第二緩存中所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性不同時(shí),根據(jù)抓取的所述對(duì)象屬性更新所述數(shù)據(jù)庫。
[0076]實(shí)際應(yīng)用中,當(dāng)?shù)谝痪彺嬷写嬖谒龇诸惥W(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)時(shí),首先獲取存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),其次,利用爬蟲工具抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性。最后,判斷抓取的對(duì)象屬性與所述第二緩存中存儲(chǔ)的與所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性是否相同,如果不同,則利用抓取的對(duì)象屬性替換所述數(shù)據(jù)庫中存儲(chǔ)的所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的原對(duì)象屬性,實(shí)現(xiàn)所述數(shù)據(jù)庫的更新。
[0077]如果所述抓取的對(duì)象屬性與所述第二緩存中存儲(chǔ)的與所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性相同,則說明該對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性沒有變化,即不需要更新所述數(shù)據(jù)庫。
[0078]S208:獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),并根據(jù)所述對(duì)象標(biāo)識(shí)更新所述數(shù)據(jù)庫。
[0079]當(dāng)所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)中存在從所述第一緩存查詢不到的對(duì)象標(biāo)識(shí)時(shí),獲取所述對(duì)象標(biāo)識(shí),利用爬蟲工具抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,將所述對(duì)象標(biāo)志和與其對(duì)應(yīng)的對(duì)象屬性添加到所述數(shù)據(jù)庫中,實(shí)現(xiàn)所述數(shù)據(jù)庫的更新。[0080]本實(shí)施例中,為了保證后續(xù)數(shù)據(jù)庫更新過程中第一緩存和第二緩存中的數(shù)據(jù)信息與數(shù)據(jù)庫中的數(shù)據(jù)信息保持一致,所以,本實(shí)施例在每次完成數(shù)據(jù)庫更新后,將本次未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)添加到第一緩存。并且,將利用爬蟲工具抓取的對(duì)象屬性更新至第二緩存。
[0081]另外,本實(shí)施例中還存在一種情況,即第一緩存中也可能存在所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)中沒有的對(duì)象標(biāo)識(shí),也就是說,數(shù)據(jù)庫中也沒有所述對(duì)象標(biāo)識(shí),所以,本實(shí)施例可以利用爬蟲工具抓取上述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并更新至數(shù)據(jù)庫。
[0082]本實(shí)施例中預(yù)先建立第一緩存,用于存儲(chǔ)數(shù)據(jù)庫中的對(duì)象標(biāo)識(shí),當(dāng)獲取分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)后,查詢所述第一緩存中是否存在所述對(duì)象標(biāo)識(shí),最后獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),并根據(jù)所述對(duì)象標(biāo)識(shí)更新所述數(shù)據(jù)庫。由于訪問緩存的效率比訪問數(shù)據(jù)庫的效率高,所以本實(shí)施例中利用第一緩存存儲(chǔ)數(shù)據(jù)庫中的對(duì)象標(biāo)識(shí),通過判斷第一緩存中是否存在分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),確定數(shù)據(jù)庫是否需要更新。與現(xiàn)有技術(shù)比,本實(shí)施例能夠在減少訪問數(shù)據(jù)庫次數(shù)的基礎(chǔ)上,實(shí)現(xiàn)數(shù)據(jù)庫的更新,并提高了數(shù)據(jù)庫的更新效率。
[0083]實(shí)施例二
[0084]參考圖3,圖3為本實(shí)施例提供的商品信息數(shù)據(jù)庫的更新方法流程圖,所述方法可以應(yīng)用于比價(jià)購物網(wǎng)站,具體包括:
[0085]S301:預(yù)先建立商品URL(統(tǒng)一資源定位符)緩存,并將商品信息數(shù)據(jù)庫中的所有商品URL均存入所述商品URL緩存中。
[0086]S302:預(yù)先建立價(jià)格和庫存的緩存,并將所述數(shù)據(jù)庫中的商品信息存入所述緩存中,其中,所述商品信息包括商品URL和與所述商品URL對(duì)應(yīng)的商品價(jià)格和商品庫存等。
[0087]另外,由于不同的城市的商品信息可能不同,所以,本實(shí)施例中的商品信息還可以包括與所述商品URL對(duì)應(yīng)的不同城市的商品價(jià)格和商品庫存等。
[0088]S303:從分類數(shù)據(jù)庫中獲取一個(gè)分類網(wǎng)址,并抓取所述分類網(wǎng)址對(duì)應(yīng)的所有商品URL。
[0089]通常比價(jià)購物網(wǎng)站具有一個(gè)分類數(shù)據(jù)庫,用于存儲(chǔ)各個(gè)電商購物網(wǎng)站的分類URL,為了減少爬蟲工具多次重復(fù)抓取同一個(gè)商品的信息,所以分類數(shù)據(jù)庫中通常存儲(chǔ)電商購物網(wǎng)站的末級(jí)商品分類,如某電商購物網(wǎng)站的第一級(jí)商品分類為“電腦、辦公”,該第一級(jí)商品分類的第二級(jí)商品分類包括“電腦整機(jī)”,末級(jí)商品分類包括“筆記本”,本實(shí)施例的分類數(shù)據(jù)庫中存儲(chǔ)“筆記本”分類URL。
[0090]由于電商購物網(wǎng)站的一個(gè)分類通常對(duì)應(yīng)若干頁數(shù)的商品信息,所以,本實(shí)施例在確定分類網(wǎng)址后,可以首先獲取所述分類對(duì)應(yīng)的商品信息的總頁數(shù)。其次,獲取所述分類網(wǎng)址對(duì)應(yīng)的各個(gè)頁數(shù)的URL,并利用爬蟲工具分布式抓取各個(gè)頁數(shù)URL對(duì)應(yīng)的商品URL。
[0091]S304:在抓取商品URL后,查詢預(yù)先建立的商品URL緩存中是否存在所述商品URL,如果存在,則執(zhí)行S305,否則執(zhí)行S308。
[0092]本實(shí)施例中,在抓取所述分類網(wǎng)址對(duì)應(yīng)的商品URL后,查詢所述商品URL緩存中是否存在所述商品URL,如果存在,則表明數(shù)據(jù)庫中存儲(chǔ)了所述商品URL對(duì)應(yīng)的商品信息,進(jìn)入S305 ;如果不存在,則表明所述商品URL為電商購物網(wǎng)站新添加的商品,數(shù)據(jù)庫的前一次更新中沒有得到該商品的信息,所以,本實(shí)施例可以利用所述商品URL更新數(shù)據(jù)庫。[0093]S305:當(dāng)所述商品URL存在于所述商品URL緩存中時(shí),抓取所述商品URL對(duì)應(yīng)的電商購物網(wǎng)站中的該商品的價(jià)格和庫存。
[0094]由于電商購物網(wǎng)站中不同城市的同一商品的價(jià)格和庫存通常不同,所以,本實(shí)施例也會(huì)考慮不同城市的情況,即抓取不同城市的該商品的價(jià)格和庫存。
[0095]S306:在存儲(chǔ)有價(jià)格和庫存的緩存中,獲取所述商品URL對(duì)應(yīng)的價(jià)格和庫存,并與抓取的電商購物網(wǎng)站中該商品的價(jià)格和庫存比較。
[0096]本實(shí)施例利用價(jià)格和庫存的緩存存儲(chǔ)數(shù)據(jù)庫中的商品URL對(duì)應(yīng)的價(jià)格和庫存,通過訪問該緩存判斷所述數(shù)據(jù)庫是否需要更新,當(dāng)所述數(shù)據(jù)庫中不存在更新內(nèi)容時(shí)減少對(duì)數(shù)據(jù)庫的訪問次數(shù)。
[0097]S307:當(dāng)抓取的該商品的價(jià)格和庫存與緩存中存儲(chǔ)的不同時(shí),將數(shù)據(jù)庫中的該商品URL對(duì)應(yīng)的價(jià)格和庫存更新為抓取的所述商品的價(jià)格和庫存。
[0098]為了所述數(shù)據(jù)庫的下一次更新能夠更準(zhǔn)確,所以本實(shí)施例還可以將抓取的該商品的價(jià)格和庫存替換所述緩存中的該商品的價(jià)格和庫存,使得該緩存中的商品信息與數(shù)據(jù)庫中的保持一致。
[0099]S308:當(dāng)所述商品URL未存在于所述商品URL緩存中時(shí),抓取所述商品URL對(duì)應(yīng)的電商購物網(wǎng)站中的該商品的價(jià)格和庫存,并直接添加至數(shù)據(jù)庫中。
[0100]由于商品URL緩存中存儲(chǔ)的商品URL與數(shù)據(jù)庫中的商品URL保持一致,如果獲取的商品URL未存在于商品URL緩存中,則表明其也不存在與數(shù)據(jù)庫中,所以,本實(shí)施例可以直接抓取所述商品URL對(duì)應(yīng)的電商購物網(wǎng)站中的該商品的價(jià)格和庫存,并更新數(shù)據(jù)庫。另夕卜,本實(shí)施例還可以利用該商品URL和抓取的該商品的價(jià)格和庫存更新商品URL緩存及存儲(chǔ)價(jià)格和庫存的緩存,使得他們均與數(shù)據(jù)庫中的信息保持一致。
[0101]另外,本實(shí)施例中的比價(jià)購物網(wǎng)站還存在另一種需要更新的情況,即當(dāng)電商購物網(wǎng)站的商品處于下架狀態(tài)時(shí),本實(shí)施例也可以根據(jù)抓取的商品信息更新數(shù)據(jù)庫。具體的,獲取商品URL緩存中與所述分類網(wǎng)址對(duì)應(yīng)的所有商品URL均不同的商品URL,抓取所述商品URL對(duì)應(yīng)的商品價(jià)格和庫存,并更新數(shù)據(jù)庫。
[0102]本實(shí)施例利用緩存存儲(chǔ)數(shù)據(jù)庫中的商品信息,在判斷數(shù)據(jù)庫中的商品信息是否需要更新時(shí),只需要訪問緩存中的商品信息,而不需要訪問數(shù)據(jù)庫,所以,本實(shí)施例的數(shù)據(jù)庫更新方法能夠減少訪問數(shù)據(jù)庫的次數(shù)。
[0103]實(shí)施例三
[0104]參考圖4,圖4為本實(shí)施例提供的一種數(shù)據(jù)庫更新裝置結(jié)構(gòu)示意圖,所述裝置可以包括:
[0105]第一獲取模塊401,用于獲取一分類網(wǎng)址后,獲取所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí);
[0106]第一查詢模塊402,用于查詢所述第一緩存中是否存在所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),所述第一緩存用于存儲(chǔ)數(shù)據(jù)庫中的對(duì)象標(biāo)識(shí);
[0107]第一更新模塊403,用于獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),并根據(jù)所述對(duì)象標(biāo)識(shí)更新所述數(shù)據(jù)庫。
[0108]參考圖5,圖5為本實(shí)施例提供的另一種數(shù)據(jù)庫更新裝置結(jié)構(gòu)示意圖,所述裝置除了包括圖4中的模塊,還可以包括:
[0109]第二獲取模塊501,用于獲取存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí);
[0110]第一判斷模塊502,用于抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并判斷所述對(duì)象屬性與所述第二緩存中所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性是否相同;
[0111]第二更新模塊503,用于當(dāng)抓取的所述對(duì)象屬性與所述第二緩存中所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性不同時(shí),根據(jù)抓取的所述對(duì)象屬性更新所述數(shù)據(jù)庫。
[0112]另外,所述裝置還可以包括:
[0113]第一添加模塊,用于將所述未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)添加到所述第一緩存。
[0114]具體的,所述第一更新模塊,包括:
[0115]第一獲取子模塊,用于獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí);
[0116]第一添加子模塊,用于抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并將所述對(duì)象標(biāo)識(shí)與所述對(duì)象屬性添加到所述數(shù)據(jù)庫。
[0117]另外,所述裝置還包括:
[0118]第三更新模塊,用于利用抓取的對(duì)象屬性更新所述第二緩存。
[0119]具體的,所述第一獲取模塊,包括:
[0120]第二獲取子模塊,用于獲取一分類網(wǎng)址,以及所述分類網(wǎng)址對(duì)應(yīng)的總頁數(shù);
[0121]第三獲取子模塊,用于獲取所述分類網(wǎng)址對(duì)應(yīng)的各個(gè)頁的頁標(biāo)識(shí);
[0122]第四獲取子模塊,用于獲取各個(gè)頁標(biāo)識(shí)對(duì)應(yīng)的對(duì)象標(biāo)識(shí)。
[0123]其中,所述裝置還包括:
[0124]第三獲取模塊,用于獲取所述第一緩存中與所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)不同的對(duì)象標(biāo)識(shí);
[0125]第四更新模塊,用于抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并更新所述數(shù)據(jù)庫。
[0126]本實(shí)施例提供的數(shù)據(jù)庫更新裝置原理為第一獲取模塊獲取一分類網(wǎng)址后,獲取所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí);第一查詢模塊查詢所述第一緩存中是否存在所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),所述第一緩存用于存儲(chǔ)數(shù)據(jù)庫中的對(duì)象標(biāo)識(shí);第一更新模塊獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),并根據(jù)所述對(duì)象標(biāo)識(shí)更新所述數(shù)據(jù)庫。第二獲取模塊獲取存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí);第一判斷模塊抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并判斷所述對(duì)象屬性與所述第二緩存中所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性是否相同;第二更新模塊用于當(dāng)抓取的所述對(duì)象屬性與所述第二緩存中所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性不同時(shí),根據(jù)抓取的所述對(duì)象屬性更新所述數(shù)據(jù)庫。
[0127]本實(shí)施例中預(yù)先建立第一緩存,用于存儲(chǔ)數(shù)據(jù)庫中的對(duì)象標(biāo)識(shí),當(dāng)獲取分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)后,查詢所述第一緩存中是否存在所述對(duì)象標(biāo)識(shí),最后獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),并根據(jù)所述對(duì)象標(biāo)識(shí)更新所述數(shù)據(jù)庫。由于訪問緩存的效率比訪問數(shù)據(jù)庫的效率高,所以本實(shí)施例中利用第一緩存存儲(chǔ)數(shù)據(jù)庫中的對(duì)象標(biāo)識(shí),通過判斷第一緩存中是否存在分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),確定數(shù)據(jù)庫是否需要更新。與現(xiàn)有技術(shù)比,本實(shí)施例能夠在減少訪問數(shù)據(jù)庫次數(shù)的基礎(chǔ)上,實(shí)現(xiàn)數(shù)據(jù)庫的更新,并提高了數(shù)據(jù)庫的更新效率。
[0128]對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的系統(tǒng)實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
[0129]需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0130]以上對(duì)本發(fā)明實(shí)施例所提供的數(shù)據(jù)庫更新方法及裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在【具體實(shí)施方式】及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明 的限制。
【權(quán)利要求】
1.一種數(shù)據(jù)庫更新方法,其特征在于,所述方法包括: 獲取一分類網(wǎng)址后,獲取所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí); 查詢所述第一緩存中是否存在所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),所述第一緩存用于存儲(chǔ)數(shù)據(jù)庫中的對(duì)象標(biāo)識(shí); 獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),并根據(jù)所述對(duì)象標(biāo)識(shí)更新所述數(shù)據(jù)庫。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 獲取存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí); 抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并判斷所述對(duì)象屬性與所述第二緩存中所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性是否相同,所述第二緩存用于存儲(chǔ)所述數(shù)據(jù)庫中的對(duì)象信息,所述對(duì)象信息包括對(duì)象標(biāo)識(shí)和與所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性; 當(dāng)抓取的所述對(duì)象屬性與所述第二緩存中所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性不同時(shí),根據(jù)抓取的所述對(duì)象屬性更新所述數(shù)據(jù)庫。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 將所述未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)添加到所述第一緩存。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),并根據(jù)所述對(duì)象標(biāo)識(shí)更新所述數(shù)據(jù)庫,包括: 獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí); 抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并將所述對(duì)象標(biāo)識(shí)與所述對(duì)象屬性添加到所述數(shù)據(jù)庫。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并將所述對(duì)象標(biāo)識(shí)與所述對(duì)象屬性添加到所述數(shù)據(jù)庫之后,還包括: 利用抓取的對(duì)象屬性更新所述第二緩存。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述獲取一分類網(wǎng)址后,獲取所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),包括: 獲取一分類網(wǎng)址,以及所述分類網(wǎng)址對(duì)應(yīng)的總頁數(shù); 獲取所述分類網(wǎng)址對(duì)應(yīng)的各個(gè)頁的頁標(biāo)識(shí); 獲取各個(gè)頁標(biāo)識(shí)對(duì)應(yīng)的對(duì)象標(biāo)識(shí)。
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 獲取所述第一緩存中與所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)不同的對(duì)象標(biāo)識(shí); 抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并更新所述數(shù)據(jù)庫。
8.根據(jù)權(quán)利要求1-7中任一所述的方法,其特征在于,所述方法應(yīng)用于比價(jià)購物網(wǎng)站,所述對(duì)象標(biāo)識(shí)為商品URL,所述對(duì)象屬性為商品的價(jià)格和\或庫存,所述對(duì)象信息為商品信肩、O
9.一種數(shù)據(jù)庫更新裝置,其特征在于,所述裝置包括: 第一獲取模塊,用于獲取一分類網(wǎng)址后,獲取所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí); 第一查詢模塊,用于查詢所述第一緩存中是否存在所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),所述第一緩存用于存儲(chǔ)數(shù)據(jù)庫中的對(duì)象標(biāo)識(shí);第一更新模塊,用于獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí),并根據(jù)所述對(duì)象標(biāo)識(shí)更新所述數(shù)據(jù)庫。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括: 第二獲取模塊,用于獲取存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí);第一判斷模塊,用于抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并判斷所述對(duì)象屬性與所述第二緩存中所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性是否相同; 第二更新模塊,用于當(dāng)抓取的所述對(duì)象屬性與所述第二緩存中所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性不同時(shí),根據(jù)抓取的所述對(duì)象屬性更新所述數(shù)據(jù)庫。
11.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括: 第一添加模塊,用于將所述未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)添加到所述第 一緩存。
12.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述第一更新模塊,包括: 第一獲取子模塊,用于獲取未存在于所述第一緩存中的所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí); 第一添加子模塊,用于抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并將所述對(duì)象標(biāo)識(shí)與所述對(duì)象屬性添加到所述數(shù)據(jù)庫。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述裝置還包括: 第三更新模塊,用于利用抓取的對(duì)象屬性更新所述第二緩存。
14.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述第一獲取模塊,包括: 第二獲取子模塊,用于獲取一分類網(wǎng)址,以及所述分類網(wǎng)址對(duì)應(yīng)的總頁數(shù); 第三獲取子模塊,用于獲取所述分類網(wǎng)址對(duì)應(yīng)的各個(gè)頁的頁標(biāo)識(shí); 第四獲取子模塊,用于獲取各個(gè)頁標(biāo)識(shí)對(duì)應(yīng)的對(duì)象標(biāo)識(shí)。
15.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述裝置還包括: 第三獲取模塊,用于獲取所述第一緩存中與所述分類網(wǎng)址對(duì)應(yīng)的對(duì)象標(biāo)識(shí)不同的對(duì)象標(biāo)識(shí); 第四更新模塊,用于抓取所述對(duì)象標(biāo)識(shí)對(duì)應(yīng)的對(duì)象屬性,并更新所述數(shù)據(jù)庫。
【文檔編號(hào)】G06F17/30GK104021192SQ201410265708
【公開日】2014年9月3日 申請(qǐng)日期:2014年6月13日 優(yōu)先權(quán)日:2014年6月13日
【發(fā)明者】袁晨真, 牛廣方, 彭衛(wèi) 申請(qǐng)人:北京聯(lián)時(shí)空網(wǎng)絡(luò)通信設(shè)備有限公司