在 Web 生態(tài)中,搜索引擎如何發(fā)現(xiàn)并收錄資源大家并不陌生。爬蟲通過(guò)抓取 Web 網(wǎng)頁(yè),能夠很好的解析頁(yè)面內(nèi)容,并為其建立索引。那么作為依托于客戶端形態(tài)存在的小程序,又是如何實(shí)現(xiàn)資源收錄的呢?
答案是,既然 Web 爬蟲技術(shù)已經(jīng)相對(duì)成熟,只要將小程序轉(zhuǎn)換為一個(gè) Web 版本,即可輕松借助已有的爬蟲能力實(shí)現(xiàn)小程序頁(yè)面的收錄。到這里,今天的主角就要隆重登場(chǎng)了 —— Web 化小程序
Web 化小程序是百度小程序的 Web 版本。每個(gè) Web 化小程序都是一個(gè)單頁(yè)面應(yīng)用站點(diǎn),可以通過(guò)唯一對(duì)應(yīng)的 URL 在瀏覽器打開。Web 化小程序與對(duì)應(yīng)的客戶端打開的小程序內(nèi)容、樣式和交互行為基本一致。
以百度翻譯小程序?yàn)槔?,下圖為百度翻譯小程序在百度 App 中打開和它的 Web 化小程序在 safari 瀏覽器打開的效果:
那么 Web 化小程序是如何生成的呢?
百度智能小程序具有自動(dòng)生成 Web 化的能力,在小程序發(fā)布時(shí),后臺(tái)會(huì)自動(dòng)為每個(gè)小程序生成一份 Web 化小程序。也就是說(shuō) Web 化對(duì)小程序開發(fā)者來(lái)說(shuō)是透明的,開發(fā)者幾乎不用做額外的適配即可完成轉(zhuǎn)換(當(dāng)然,由于H5與客戶端天然存在的差異,我們?nèi)杂幸恍╅_發(fā)建議希望開發(fā)者能夠關(guān)注,后面會(huì)詳細(xì)介紹)。
有人問(wèn):想讓爬蟲認(rèn)識(shí)至于那么認(rèn)真嗎?有個(gè) HTML 就夠了,還要和客戶端小程序樣式和交互保持一致?事實(shí)上,隨著SPA應(yīng)用的大量普及,現(xiàn)代爬蟲如果僅通過(guò)解析靜態(tài) HTML ,無(wú)法充分獲取有效頁(yè)面內(nèi)容。因此 爬蟲的抓取過(guò)程,會(huì)渲染頁(yè)面,并根據(jù)頁(yè)面的動(dòng)態(tài)數(shù)據(jù)和樣式布局等信息更好的理解頁(yè)面內(nèi)容。也就是說(shuō),爬蟲看到的頁(yè)面和我們看到的頁(yè)面是一模一樣的。
在百度開發(fā)者工具 2.2.4 以上版本,默認(rèn)開啟 Web 化。之前版本的工具需要手動(dòng)打開 Web 化開關(guān)。對(duì)于之前未開啟 Web 化的小程序,只要升級(jí)工具到最新版本,重新發(fā)布,即可自動(dòng)開啟。
當(dāng)有小程序發(fā)布后,爬蟲會(huì)通過(guò)自主發(fā)現(xiàn)的方式收錄 Web 化小程序的各個(gè)頁(yè)面,為其建立索引。
除了自主發(fā)現(xiàn)的資源收錄方式,如果開發(fā)者想要獲取更高時(shí)效的資源收錄效率,還可以通過(guò)主動(dòng)提交資源列表,即 sitemap 的方式實(shí)現(xiàn)天級(jí)和周級(jí)資源收錄。sitemap 提交詳見官方文檔《接入自然搜索結(jié)果 - 提交sitemap 》
對(duì)于在百度已收錄了 H5 站的資源,也可以通過(guò)配置 H5 域名和提交 H5 與小程序頁(yè)面映射規(guī)則的方式替換原 H5 頁(yè)面收錄結(jié)果繼承已有權(quán)重。具體提交方式詳見官方文檔《接入自然搜索結(jié)果 - 配置URL映射規(guī)則》