Google的網站站長管理平台中可以看到Google Bot抓取遇到的錯誤,而且錯誤比較多的時候,會有郵件提醒,這是個不錯的功能,當系列網站多以及頁面多、服務器多的時候,很難人工都及時檢查到各種頁面的各種錯誤,有Google的提醒能讓我們及時獲取異常信息、及時檢查處理。
一般後台看到報錯不是太多的時候,我們就沒有處理(Google Bot會自己定期去檢查錯誤是否修複)或者馬上人工标記為已修複,人工标記存在一個數量限制的問題,一個站點每天隻能最多修複1000條,這樣如果遇到報錯有上萬、上十萬的時候,理論上就需要數十天甚至上百天來修複。
查看了最新的Google Webmaster Tools的API調用,有兩個功能是需要使用的:
前面是列出所有的抓取錯誤,後面是逐個标記為已修複,可以用PHP編寫一個程序,先列出所有錯誤,再進行循環判斷,當出錯類型以及出錯時間滿足我們預設條件的時候,就标記為已修複。
這種辦法沒有每天1000條的限制,可以一次性全部修複,節約了很多時間。
但實際編程的時候,那個oAuth 2.0驗證沒有搞定,後來是用上面網址中的例子,獲得類似這樣的token碼:
Authorization: Bearer ya29.iAAlu5mGyN9uiNDQFDk8nKCL8e0fgqBMnMVi5mjw_fWzajBw5NGi8vzQ
然後直接放在PHP程序中來實現的,每隔一個小時需要人工重新生成一次。
另外,Webmaster Tools的緩存機制有些搞不懂,從Webmaster Tools後台、list例子以及程序中獲得的報錯條數有可能都不一緻,需要運行後再觀察1、2天回頭看。
補充:實際使用效果不錯,可以解決大多數的錯誤修複,不過依然有少部分無法通過批量的辦法修複,原因可能是webmaster tools内部緩存機制的問題,剩下的少部分就可以繼續人工來修複。
放置地方:usloft4065/var/www/html/y*e.bizdirlib.com/sites/all/will-delete/ZendGdata-1.12.0/demos/Zend/Gdata,文件為GwtCrawlErrors.php、GwtCrawlErrors.class.php,修改其中的:
用戶名$mail = 'q*g@gmail.com'; 密碼$pass = 'p*l'; 域名$domain = 'http://bra.areacodebase.com/' 報錯代碼$detail=='403 error' 日期條件strtotime($dateDetected)<strtotime("09/08/2014") 授權代碼'Authorization: Bearer ya29.iACyKxpl76cqlcwD7en_TFCA4yWRw8S4XxGrLwQw8aXaL6EwG58R1nr4'
等就可以運行php GwtCrawlErrors.php。
评论1
博主,您好!看到這片信息很有用
博主,您好!看到這片信息很有用,但是我再網上搜索的GwtCrawlErrors.php、GwtCrawlErrors.class.php貌似不能直接用?可以将你在用的這2個文件分享一下嗎?多謝了!