什么是抓取诊断
抓取诊断工具,可以让站长从百度蜘蛛的视角查看抓取内容,自助诊断百度蜘蛛看到的内容,和预期是否一致。每个站点每周可使用70次,抓取结果只展现百度蜘蛛可见的前200KB内容。
抓取诊断工具能做什么
目前抓取诊断工具有如下作用:
1、诊断抓取内容是否符合预期,譬如很多商品详情页面,价格信息是通过JavaScript输出的,对百度蜘蛛不友好,价格信息较难在搜索中应用。问题修正后,可用诊断工具再次抓取检验。
2、诊断网页是否被加了黒链、隐藏文本。网站如果被黑,可能被加上隐藏的链接,这些链可能只在百度抓取时才出现,需要用此抓取工具诊断。
3、检查网站与百度的连接是否畅通,若是IP信息不一致,可以报错通知百度更新IP。
抓取诊断工具常见错误类型解析
【url规范】
百度支持抓取的url长度不超过1024,如果您的链接长度过长,请在保证正常访问的情况下,适当精简,保证链接能被百度正常抓取和收录。
【重定向错误】
重定向是指百度spider访问链接时发生了跳转,如果跳转后的链接超长或者连续跳转的次数超过5次,就会发生重定向错误而导致抓取失败。
【服务器连接错误】
这种情况是指,由于服务器响应过慢或您的网站屏蔽了百度spider,而导致百度无法访问您的网站。从而会导致百度无法正常收录或者更新您网站的内容。您可能看到以下具体错误:连接超时、连接失败、连接被拒、无响应、响应遭到截断、连接重置、标头遭到截断、超时。
*如何处理服务器连接错误?
减少动态网页请求的过多网页加载。如果网站为多个网址提供相同内容,则会被视为动态提供内容(例如,www.example.com/shoes.php?color=red&size=7与www.example.com/shoes.php?size=7&color=red提供的内容相同)。动态网页的响应时间可能会很长,并会因此导致超时问题。或者,服务器可能会返回超载状态,要求百度spider放慢抓取该网站的速度。一般来说,建议您尽量使用简短的参数并谨慎使用。
确保您网站的托管服务器没有停止运行、超载或配置不当。如果连接问题、超时问题或响应问题仍然存在,请与您的网站托管服务提供商联系,并考虑增强您的网站处理流量的能力。
检查网站是否不小心屏蔽了百度spider的IP。您可能会由于系统级问题而阻止了百度访问,例如DNS配置问题、配置不当的防火墙或DoS防护系统、内容管理系统配置问题。防御系统是保证托管服务正常运行的关键因素之一,并且这些系统通常会配置为自动阻止超量的服务器请求。由于百度spider发出的请求通常要比普通用户多,因此可能会触发这些防御系统,导致它们阻止百度spider访问并抓取您的网站。要解决此类问题,您需要确定网站基础架构中的哪个部分在阻止百度spider,然后取消该阻止。如果您没有控制防火墙的权限,就需要与您的托管服务提供商联系解决此问题。
【robots封禁问题】
在抓取诊断工具中如果返回的抓取失败结论是robots封禁,请确认您是否对该网址设置了robots,阻止百度spider抓取网站的某些内容,如果您未使用robots文件屏蔽百度,请点击旁边的报错链接,百度会立即更新您站点的robots信息;如果是您的误操作导致了封禁,请及时修改robots文件,避免造成您的网站在百度收录量和流量的下降。
【DNS问题】
DNS错误是指由于服务器停止运行或DNS到您网域的路由存在问题,导致百度spider无法与DNS服务器通信。
*如何处理DNS错误?
确保百度能够抓取您的网站。对重要网页(例如您的首页)采用抓取诊断工具,如果它能顺利返回您的首页内容,那么您就可以认为百度能够正常访问您的网站。
对于持续的或反复出现的DNS错误,请与您的DNS提供商联系。通常情况下,您的DNS提供商即为网站托管服务提供商。
配置您的服务器,使其能够以404或500等HTTP错误代码对不存在的主机名作出响应。
【404错误】
一般情况下,当百度spider访问到不存在的网页(因为您删除或重命名了网页且没有将旧网址重定向到新网页,或者链接中存在拼写错误)时,就会出现“未找到”状态错误(通常是404 HTTP状态代码)。
【访问遭拒绝】
一般情况下,百度会通过跟踪网页间的链接来查找内容。百度spider必须能够访问某个网页才能抓取该网页。如果您意外地看到了“访问遭拒”错误,可能是由于以下几种原因导致的:
(1)百度spider无法访问您网站上的网址,因为您网站上的所有或部分内容要求用户登录后才能查看。
(2)您的服务器要求用户使用代理进行身份验证,或者您的托管服务提供商阻止百度spider访问您的网站。
【参数错误】
由于请求的语法格式有误,不符合服务器对请求的某些限制,或者请求本身存在一定的错误,服务器无法理解此请求,导致抓取失败。
【socket读写错误】
当百度spider访问服务器,进行tcp通信的时候,socket读写发生异常,导致数据不能正常返回。请检查服务器连接状况和防火墙设置是否符合预期。
【读取http头或者页面内容时失败】
您的服务器收到了我们的完整请求,但是返回信息时不完整,http头或者响应正文发生了截断,导致网页内容不能正常读取。