收到来自Google网站管理员工具的通知,因为“无法访问的robots.txt”,抓取工具已停止抓取某个特定网站。不幸的是,谷歌没有提供有关爬虫错误的任何其他详细信息。
我有
<meta name="robots" content="index, follow">
作为我在base.html模板中的一个元标记包含在内,我为每个django应用程序执行此操作,并且我没有遇到任何其他网站的此问题。纠正我,如果我错了,但我也认为robots.txt没有必要让谷歌为你索引。
我尝试通过安装和配置django-robots(https://github.com/jezdez/django-robots)并将其添加到我的网址来解决:
(r'^robots\.txt$', include('robots.urls')),
我最近的谷歌抓取工具(将django-robots推到prod之后)仍然会返回相同的错误。
我没有任何特殊的抓取规则,即使不包含robots.txt文件也没问题,因此google会对整个网站编制索引。在我尝试使用此处提到的其他两种方法之前,任何人都对快速修复有任何想法:http://fredericiana.com/2010/06/09/three-ways-to-add-a-robots-txt-to-your-django-project/?
答案 0 :(得分:0)
我尝试完全删除urls.py中的robots.txt行并将其作为google获取,但这并未解决问题。
(r'^robots\.txt$', include('robots.urls')),
我通过稍微修改我的root urlconf来解决这个问题
from django.http import HttpResponse
(r'^robots\.txt$', lambda r: HttpResponse("User-agent: *\nDisallow: /*", mimetype="text/plain")),
现在googlebot抓好了。希望我更好地理解为什么这个特定的解决方案对我有效,但它确实有效。
感谢Ludwik的帮助。
答案 1 :(得分:0)
如果您有权限,那么
Alias /robots.txt /var/www/---your path ---/PyBot/robots.txt
为您的virtual host
添加别名。 (在apache配置文件中)
同样适用于favicon
Alias /favicon.ico /var/www/aktel/workspace1/PyBot/PyBot/static/favicon.ico