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个文件分享一下吗?多谢了!