在百度上正常搜索一個關鍵詞,比如箭牌指紋鎖,搜索的結果如下:
其他的搜索結果很正常比如第一個是官網,第二個是京東的頁面,第三個頁面顯示的域顯示的是一個資訊網站,點擊進入之后卻是天貓的頁面,查看百度快照,快照的內容才是原頁面的內容。背后肯定是用了頁面跳轉技術的,但究竟是什么類型的跳轉,需要研究一下。
首先想到的就是JS跳轉,打開Chrome設置,禁用網站JS:
再次點擊百度搜索頁面的鏈接,結果顯示正常了,與快照的內容也是一致的。也就是說,頁面使用的JS判斷跳轉,具體看一下判斷的條件,是瀏覽器的UA還是其他項。查看頁面的源代碼,找到網站加載的JS,找到以下內容:
可以看到,網站針對瀏覽器的referrer頭進行了判斷跳轉;解釋一下瀏覽器referrer ,Http協議頭中的Referer主要用來讓服務器判斷來源頁面, 即用戶是從哪個頁面來的,通常被網站用來統計用戶來源,是從搜索頁面來的,還是從其他網站鏈接過來,或是從書簽等訪問。這里只要用戶從百度、搜狗、360、google搜索並點擊進來的,就會跳轉到指定頁面。而正常訪問該頁面的鏈接則不會跳轉。
為什么蜘蛛不會跳轉到相應的頁面,是的快照的內容是跳轉之后的頁面內容?
有三點可能性,1、蜘蛛訪問時並不攜帶referrer信息,所以不會跳轉;2、蜘蛛無法很好的對網站的js進行判斷,說白了不認識JS;3、蜘蛛無法訪問被跳轉頁面的內容,因為電商內的網站一般是禁止蜘蛛抓取的。
不當之處請批評指出。