如何在Django项目中添加robots.txt

57次阅读
没有评论

在Django项目中添加robots.txt,是为了让搜索引擎只爬取我们想让它爬取的内容。

一般搜索引擎在爬取网站内容时都会先爬取这个文件,然后根据这个文件的设置进行内容的爬取。

首先,先来看一下robots.txt文件的写法。

在robots.txt文件中,每一组配置主要由3个命令组成:

  • User-agent(必填):设置搜索引擎robot的名称,“*”表示对所有搜索引擎生效。
  • Allow:希望被搜索引擎爬取的URL。
  • Disallow:禁止搜索引擎爬取的URL。

另外,在robots.txt文件中支持使用通配符”*”and”$”。

综上所述,我们来看一些例子。

1、允许所有的搜索引擎爬取网站全部内容 User-agent: * Allow: / 或者 User-agent: * Disallow: 2、 禁止所有搜索引擎爬取网站的任何内容 User-agent: * Disallow: / 3、 禁止某个搜索引擎爬取网站内容

禁止百度搜索引擎: User-agent: Baiduspider Disallow: / 禁止360搜索引擎: User-agent: 360Spider Disallow: / 4、 只允许百度搜索引擎爬取网站内容 User-agent: Baiduspider Disallow: 5、 禁止搜索引擎爬取指定目录 User-agent: * Disallow: /admin/ Disallow: /tmp/ 6、允许搜索引擎爬取指定目录中的部分内容 User-agent: * Allow: /tmp/image Disallow: /tmp/ 7、使用”*”限制爬取

禁止访问/media/目录下所有的“gif”文件。 User-agent: * Disallow: /media/*.gif 8、使用”$”限制爬取

仅允许爬取以”.html”为后缀的URL。 User-agent: * Allow: .html$ Disallow: / 9、 禁止爬取网站中所有的动态页面 User-agent: * Disallow: /*?* 10、仅允许百度搜索引擎爬取网站上的网页和“.png”图片 User-agent:Baiduspide Allow: .png$ Disallow: .jpg$ Disallow: .jpeg$ Disallow: .gif$ Disallow: .bmp$ 以上就是关于robots.txt文件的写法。

那么,这个文件放在哪里?如何使用呢?

这个文件应该让搜索引擎在网站的根目录就能够找到。

对于搜索引擎来说,它的URL应该是http(s)://www.domain.com/robots.txt

但是,实际上这个文件我们不会放在项目的根目录中去,因为放进去也访问不了。

根据Django的官方文档,可以采用下面这种方式。

1、将robots.txt文件放入项目的static文件夹中。

2、在nginx的配置文件中添加如下配置。

location  /robots.txt {
    <span class="hljs-built_in">alias</span>  /path/to/static/robots.txt;
}

当然,并不是所有项目都是用nginx服务器。

我们还可以将robots.txt文件放到 templates 目录中,然后修改urls.py文件。

from django.views.generic import TemplateView

path('robots.txt', TemplateView.as_view(template_name='robots.txt', content_type='text/plain')),

除了使用robots.txt文件之外,有些搜索引擎还支持nofollow和noarchive标记。

nofollow:禁止搜索引擎跟踪当前页面上的链接

如果不想让搜索引擎追踪某个网页上的链接,且不传递链接的权重,可以在网页的<HEAD> 部分加上:<meta name=”robots” content=”nofollow”>

如果不想让搜索引擎追踪某一条特定链接,可以将标记直接写在某个链接上:<a href=”index.html” rel=”nofollow”>index</a>

如果仅拒绝某一个搜索引擎(例如百度)跟踪网页上的链接,可以在网页的<HEAD> 部分加上:<meta name=”Baiduspider” content=”nofollow”>

noarchive:禁止搜索引擎在搜索结果中显示网页快照

如果拒绝所有搜索引擎显示网页的快照,可以在网页的<HEAD> 部分加上:<meta name=”robots” content=”noarchive”>

如果仅拒绝某一个搜索引擎(例如百度)显示快照,可以在网页的<HEAD> 部分加上:<meta name=”Baiduspider” content=”noarchive”>

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:wuyou2023-01-10发表,共计1928字。
新手QQ群:570568346,欢迎进群讨论 Python51学习