1. 程式人生 > >解決GitHub Pages遮蔽百度爬蟲的方法

解決GitHub Pages遮蔽百度爬蟲的方法

Github遮蔽百度爬蟲導致在Github Pages上託管的部落格、網站都無法被百度索引到,但對於國內的小夥伴尤其是還在上學的未來的程式設計師們百度還是一個重要的檢索渠道。已經有小夥伴在這方面做了嘗試並且進行了全面的分析,這裡我僅僅介紹一下個人的做法。這個部落格也託管在Github Pages上,個人沒有虛擬主機、域名也懶得備案,主要就是通過SAE的免費主機加智慧DNS解決的。

可行性及原理分析

已經有小夥伴在這方面做了嘗試,文章從原理到實踐寫的很詳盡。其主要思路是,希望通過CDN的快取攔截百度爬蟲訪問Github伺服器,防止百度爬蟲到Github伺服器被暴揍。但是從CDN的角度,各個廠商還專門發展搜尋引擎自動回源

所以人家本身就不是準備幹這活的。最後小夥伴也採用了個人虛擬主機的方案而且提供了Github的Webhook自動部署實踐的介紹。這位叫Jerry的小夥伴棒棒嗒!

另外也有一部分使用七牛儲存的小夥伴,嘗試通過在七牛上儲存網站的靜態檔案映象來服務百度爬蟲。主要的優勢是七牛的流量和空間很足,只要充值10元就可以繫結自定義域名;但是死穴在於像我這種懶得備案的域名七牛不允許繫結。

小站最後採用了新浪雲主機(SAE)+智慧DNS(本人萬網)+百度雲CDN解決。思路上還是智慧DNS針對來自百度解析線路的請求指向SAE伺服器,SAE伺服器儲存Jekyll生成的靜態檔案當映象。使用百度CDN的原因並不是為了加速,而是因為百度爬蟲機器好像幾乎不鳥萬網的智慧DNS,也就是說萬網經常錯誤返回給百度預設的結果,但所幸對百度CDN的DNS同步做的很好所以加了這個中間層。

如果萬網智慧DNS很好用理想的路徑如下:

img

添加了百度CDN以後的路徑如下:

img

有趣的是百度雲CDN有兩個而且兩個都是真的,一個是我用的免費的百度雲加速另一個是百度雲CDN。

操作手冊

  1. 註冊SAE的賬號並建立一個PHP空應用;因為PHP的應用收費最低基本每天幾個雲豆,點我的連線註冊送1000雲豆夠用好久了,我們只拿它當是一個Nginx伺服器用。》》》點我註冊啊《《《
    img
  2. 從應用後臺獲取程式碼管理地址,我選用的是git倉庫方式。用Github Pages的朋友沒有不會的吧,注意因為SAE支援多版本部署所以push的時候要指定。

    git remote add sae https://git.sinacloud
    .com/應用名
    git push sae master:1
  3. jekyll clean jekyll build 拷貝_site到SAE的git然後push
  4. 通過SAE的提供的應測試你的站點 http://應用名.applinzi.com/
  5. 到百度雲加速新增自己的網站
    img
  6. 配置你的DNS服務並測試
    img
  7. 手工同步部分:因為我做了文章和Jekyll原始碼的分離釋出文章總要執行命令所以寫了指令碼