關(guān)于爬蟲抓取JS、CSS、JSON




這是一個存在多年、經(jīng)常出現(xiàn)但又從來沒有標(biāo)準解決辦法的問題:搜索引擎爬蟲(尤其是百度)抓取JS、CSS、JSON文件,robots屏蔽依然抓取的情況。
這就引出了幾個問題:
1、爬蟲抓取JS、CSS是干什么的?
2、爬蟲能否執(zhí)行JS?
3、爬蟲抓取JS對SEO有什么影響?
針對以上問題,我說下自己的看法:
第一個,爬蟲抓取CSS,用于判斷頁面元素的重要程度,及保證快照顯示的完整性;抓取JS,用于發(fā)現(xiàn)新鏈接,及判斷是否存在作弊的情況
第二個, 會執(zhí)行JS,但不確定所有的JS是否都會執(zhí)行。像網(wǎng)上好多人說的“搜索引擎會直接忽略JS、iframe什么的,只抓取純文本信息”,這從實際情況上站不住腳啊,如果搜索引擎對JS、iframe鳥都不鳥,那內(nèi)些做黑帽的同學(xué)豈不爽死了(不懂為什么爽?請看前兩篇關(guān)于黑帽的文章,你就懂了!)
第三個,這個不知道。某些情況下,可能會占用抓取配額,不過我經(jīng)歷的幾個存在蜘蛛抓取JS的站,流量上并沒有什么異常。
說到這,我的現(xiàn)在工作的站在上半年出現(xiàn)過這種情況,百度瘋狂的抓json,robots屏蔽各種無效,然而流量上并沒有下降等異常狀況,本來依我的心理承受能力是根本不會在乎這種情況的┏ (゜ω゜)=?,但是一查json的抓取比例著實讓我菊花一緊,接近40%,是的,你沒有看錯,40%,假設(shè)百度一天抓100萬頁面,40萬都是json這玩意。
然后發(fā)現(xiàn)日志中百度的抓取總量跟百度站長工具的抓取頻次對不上,幾次檢查后發(fā)現(xiàn),日志中的抓取總量 = 百度工具的抓取頻次 + 日志中json的抓取總量。也就是說,對于百度給出的抓取頻次數(shù)據(jù),抓取json的部分是沒有計算在內(nèi)的,等于說是附贈的抓取。從這點看,應(yīng)該對SEO沒什么影響,不存在占用抓取配額的問題么,但看抓取比例總是非常蛋疼,還是決定解決下這個情況。
經(jīng)過排查,發(fā)現(xiàn)有些頁面包含一個功能:當(dāng)頁面被請求時先判斷來訪用戶是否登錄,如果登錄則返回該用戶歷史訪問的其他產(chǎn)品,如果未登錄,則返回指定的內(nèi)容。返回的內(nèi)容轉(zhuǎn)換成一個json文件(沒錯,就是百度瘋狂抓的那個),然后傳遞到前臺的js,js通過解析json文件,將解析json后的數(shù)據(jù)顯示在前端界面。
用的是異步加載,從業(yè)務(wù)邏輯上看,對該頁面的任何訪問者,如果不執(zhí)行這個js,相當(dāng)于頁面沒加載完。
json路徑是明文寫在js里的,也不知道百度是把json的路徑識別出來了還是執(zhí)行js了,反正只要抓了包含這個功能的頁面,都會順帶抓對應(yīng)的json文件。
綜上,預(yù)定的解決辦法有兩種:
第一種是直接把這個功能對應(yīng)的JS刪了
第二種是面對搜索引擎訪問,不返回這個js。所以蜘蛛根本看不到,也就不會抓了
最后因為這個功能上線多月,但數(shù)據(jù)表現(xiàn)一直不好,點擊率低,直接把這個功能砍了.......然后轉(zhuǎn)天在看日志,json抓取量為0......
A、覺得有幫助就轉(zhuǎn)一下嘍,轉(zhuǎn)一下又不會懷孕(??? ? ???)
B、暫定了幾個更新的主題,麻煩在對話框中輸入對應(yīng)的編號,我會統(tǒng)計需求最多的那個優(yōu)先更新
1)網(wǎng)站被DDOS、CC,SEO如何處理?
2)黑帽:寄生蟲程序原理
3)SEO數(shù)據(jù)的獲取與分析技巧
4)關(guān)鍵詞數(shù)據(jù)分析
5)其他,你們定,直接在對話框輸入