關于爬蟲抓取JS、CSS、JSON




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