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




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