当前位置

Google Webmaster Tools中抓取错误的批量修复

James Qi 在 2014年9月22日 - 15:29 提交
内容摘要:Google的网站站长管理平台中可以看到Google Bot抓取遇到的错误,而且错误比较多的时候,会有邮件提醒,这是个不错的功能,当系列网站多以及页面多、服务器多的时候,很难人工都及时检查到各种页面的......

  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。