php禁止网页抓取(网站管理者和内容提供者来说)

优采云 发布时间: 2021-12-21 18:01

  php禁止网页抓取(网站管理者和内容提供者来说)

  我们知道搜索引擎都有自己的“搜索机器人”(ROBOTS),通过这些机器人在互联网上沿着网页上的链接(通常是http和src链接)不断抓取信息来构建自己的

  . 对于网站 管理者和内容提供者来说,有时会出现一些不想被 ROBOTS 抓取并公开的网站内容。为了解决这个问题,ROBOTS开发社区提供了两种方法:一种是robots.txt,一种是The Robots META标签。

  一、 robots.txt

  1、 什么是robots.txt?robots.txt 是纯文本文件。通过在该文件中声明网站中不想被robots访问的部分,这样网站的部分或全部内容将无法被搜索引擎搜索到收录,或者指定搜索引擎只收录指定的内容。搜索机器人访问站点时,首先会检查站点根目录下是否存在robots.txt。如果找到,搜索机器人将根据文件内容确定访问范围。如果该文件不存在,则搜索机器人沿链接爬行。robots.txt 必须放在站点的根目录下,文件名必须全部小写。网站 网址

  对应robots.txt的URL

  :80/

  :80/robots.txt

  :1234/

  :1234/robots.txt

  2、 robots.txt 的语法

  “robots.txt”文件收录一个或多个记录,由空行分隔(以CR、CR/NL或NL作为终止符)。每条记录的格式如下:

  “:”。在这个文件中,可以使用#进行注释,具体使用

  它与 UNIX 中的约定相同。此文件中的记录通常以一行或多行 User-agent 开头,后跟几行 Disallow 行,详细信息如下:

  用户代理:

  此项的值用于描述搜索引擎机器人的名称。在“robots.txt”文件中,如果有多个User-agent记录,表示多个robots会被协议限制。对于这个文件,至少有一个 User-agent 记录。如果该项的值设置为*,则该协议对任何机器人都有效。在“robots.txt”文件中,只能有“User-agent:*”等一条记录。

  不允许:

  此项的值用于描述您不想访问的 URL。此 URL 可以是完整路径或其中的一部分。机器人不会访问任何以 Disallow 开头的 URL。例如,“禁止:/help”不允许搜索引擎访问/help.phpl和/help/index.phpl,而“不允许:/help/”允许机器人访问/help.phpl,但不允许访问/help/指数。.phpl。

  如果任何 Disallow 记录为空,则表示允许访问 网站 的所有部分。“/robots.txt”文件中必须至少有一个 Disallow 记录。如果“/robots.txt”是一个空文件,这个网站 对所有搜索引擎机器人都是开放的。

  以下是robots.txt的一些基本用法:

  l 禁止所有搜索引擎访问网站的任何部分:

  用户代理: *

  Disallow: /l 允许所有机器人访问

  用户代理: *

  不允许:

  或者您可以创建一个空文件“/robots.txt”文件 l 禁止所有搜索引擎访问网站的几个部分(下例中的cgi-bin、tmp和私有目录)

  用户代理: *

  禁止:/cgi-bin/

  禁止:/tmp/

  禁止:/private/ l 禁止访问搜索引擎(下例中的 BadBot)

  用户代理:BadBot

  Disallow: / l 只允许访问某个搜索引擎(下例中的WebCrawler)

  用户代理:WebCrawler

  禁止:用户代理:*

  不允许: /

  3、 常用搜索引擎机器人 机器人名称

  名称搜索引擎

  百度蜘蛛滑板车 ia_archiver Googlebot FAST-WebCrawler Slurp MSNBOT

  4、 robots.txt 示例

  以下是一些著名网站的robots.txt:

  5、 常见的 robots.txt 错误

  l 颠倒顺序:

  错误地写为

  用户代理: *

  禁止:GoogleBot

  正确的应该是:

  用户代理:GoogleBot

  不允许: *

  l 将多个禁止命令放在一行:

  例如,错误地写为

  禁止:/css/ /cgi-bin/ /../images/

  正确的应该是

  禁止:/css/

  禁止:/cgi-bin/

  禁止:/../images/

  l 行前有很多空格

  例如写成

  禁止:/cgi-bin/

  虽然标准中没有提到这一点,但这种方法容易出现问题。

  l 404重定向到另一个页面:

  当Robot访问很多没有robots.txt文件的网站时,会自动404重定向到另一个Html页面。这时候,Robot 往往会像处理 robots.txt 文件一样处理 Html 页面文件。这个虽然一般没有问题,但最好在网站的根目录下放一个空白的robots.txt文件。

  l 使用大写。例如

  用户代理:EXCITE

  不允许:

  虽然标准不区分大小写,但目录和文件名应该是小写的:

  用户代理:GoogleBot

  不允许:

  l 语法中只有Disallow,没有Allow!

  错误的方法是:

  用户代理:百度蜘蛛

  禁止:/约翰/

  允许:/简/

  我忘了斜线 /

  写错了:

  用户代理:百度蜘蛛

  禁止:css

  正确的应该是

  用户代理:百度蜘蛛

  禁止:/css/

  下面这个小工具专门检查robots.txt文件的有效性:

  二、 机器人 META 标签

  1、什么是机器人META标签

  Robots.txt文件主要是限制搜索引擎对整个站点或目录的访问,而Robots META标签主要是针对特定页面的。与其他META标签(如使用的语言、页面描述、关键词等)一样,Robots META标签也被放置在页面上,专门告诉搜索引擎ROBOTS如何抓取页面内容。具体形式类似(见加粗部分):

  Times Marketing-网络营销专业门户

  …

  2、Robots META 标签编写:

  Robots META标签不区分大小写,name=”Robots”表示所有搜索引擎,对于特定的搜索引擎可以写成name=”BaiduSpider”。内容部分有四个命令选项:index、noindex、follow 和 nofollow。命令以“,”分隔。

  INDEX指令告诉搜索机器人抓取页面;

  FOLLOW指令表示搜索机器人可以继续沿着页面上的链接爬行;

  Robots Meta标签默认值为INDEX和FOLLOW,inktomi除外。对于它,默认值为INDEX、NOFOLLOW。

  这样,有四种组合:

  在:

  可以写成

  ;

  可以写成

  需要注意的是,上述robots.txt和Robots META标签限制搜索引擎机器人(ROBOTS)抓取网站内容只是一个规则,需要搜索引擎机器人的配合,并不是每个ROBOTS都遵守。

  目前看来大部分搜索引擎robots都遵守robots.txt的规则,而对于Robots META标签,目前支持的并不多,但是在逐渐增加。比如知名搜索引擎GOOGLE就全面支持,GOOGLE还增加了一个命令“archive”可以限制GOOGLE是否保留网页快照。例如:

  是指抓取站点中的页面并关注页面中的链接,但不要在GOOLGE上保留该页面的网页快照。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线