php禁止网页抓取(开发小伙伴们要记住的两点:robots.txt是什么?)

优采云 发布时间: 2021-11-11 22:17

  php禁止网页抓取(开发小伙伴们要记住的两点:robots.txt是什么?)

  “爬虫玩得好,监狱早进;爬虫快乐爬,监狱要坐;数据播放,监狱伙食就够了。” 这种在技术圈广为流传的嘲讽并非危言耸听,因为近年来太多优秀的爬虫程序员为此面临牢狱之灾!

  为了避免一些不必要的麻烦,开发伙伴必须牢记以下两点:

  一、robots.txt 是什么?

  robots.txt 是纯文本文件。在这个文件中,网站管理者可以声明网站中不被搜索引擎访问的部分,或者指定搜索引擎只访问收录指定的内容。

  当搜索引擎(也称为搜索机器人或蜘蛛程序)访问一个站点时,它会首先检查站点根目录中是否存在robots.txt。如果存在,搜索机器人会根据文件Scope的内容判断访问;如果文件不存在,搜索机器人会沿着链接爬行。

  二、robots.txt的作用

  1、引导搜索引擎蜘蛛抓取指定的栏目或内容;

  2、网站 修改或URL重写优化时屏蔽对搜索引擎不友好的链接;

  3、 屏蔽死链接和404错误页面;

  4、 屏蔽没有内容和价值的页面;

  5、 屏蔽重复页面,例如评论页和搜索结果页;

  6、阻止任何不想成为收录的页面;

  7、引导蜘蛛抓取地图网站;

  三、Robots 语法(三种语法和两种通配符)

  三种语法如下:

  1、用户代理:(定义搜索引擎)

  例子:

  用户代理:*(定义所有搜索引擎)

  User-agent:Googlebot(定义谷歌,只允许谷歌蜘蛛抓取)

  User-agent: 百度蜘蛛(定义百度,只允许百度蜘蛛爬取)

  不同搜索引擎的搜索机器人名称不同,谷歌:Googlebot,百度:Baiduspider,MSN:MSNbot,雅虎:Slurp。

  2、Disallow:(用于定义不允许蜘蛛爬取的页面或目录)

  例子:

  Disallow:/(禁止蜘蛛爬取网站的所有目录,“/”表示根目录)

  Disallow: /admin(禁止蜘蛛爬取管理目录)

  Disallow: /abc.html(禁止蜘蛛爬到abc.html页面)

  Disallow: /help.html(禁止蜘蛛爬到help.html页面)

  3、Allow:(用于定义允许蜘蛛爬取的页面或子目录)

  例子:

  Allow:/admin/test/(允许蜘蛛爬取admin下的test目录)

  允许:/admin/abc.html(允许蜘蛛爬到admin目录下的abc.html页面)

  两个通配符如下:

  4、匹配字符“$”

  $ 通配符:匹配 URL 末尾的字符

  5、通配符“*”

  * 通配符:匹配0个或多个任意字符

  四、robots.txt 综合示例

  1、禁止搜索引擎抓取特定目录

  在这个例子中,网站有三个限制搜索引擎访问的目录,即搜索引擎不会访问这三个目录。

  用户代理:* 禁止:/admin/

  禁止:/tmp/

  禁止:/abc/

  2、禁止admin目录,但允许爬取admin目录下的seo子目录

  用户代理:* 允许:/admin/seo/

  禁止:/管理员/

  3、禁止抓取/abc/目录(包括子目录)中所有后缀为“.htm”的URL

  用户代理:* 禁止:/abc/*.htm$

  4、禁止抓取网站中的所有动态页面

  用户代理:* 禁止:/?

  用“?”阻止所有文件,以便阻止所有动态路径。

  5、百度蜘蛛禁止爬取网站所有图片:

  用户代理:百度蜘蛛

  禁止:/.jpg$

  禁止:/.jpeg$

  禁止:/.gif$

  禁止:/.png$

  禁止:/*.bmp$

  6、为了防止 网站 页面被抓取,同时这些页面上仍然展示 AdSense 广告

  用户代理:* 禁止:/folder1/

  用户代理:Mediapartners-Google

  允许:/folder1/

  请禁止除 Mediapartners-Google 之外的所有机器人。这可以防止页面出现在搜索结果中,同时允许 Mediapartners-Google 机器人分析页面以确定要显示哪些广告。Mediapartners-Google 机器人不会与其他 Google 用户代理共享网页。

  五、备注

  1、robots.txt文件必须放在网站的根目录下,不能放在子目录下。

  以吴俊泽的博客网站为例:比如可以访问robots.txt文件。

  2、robots.txt 文件名必须小写,记得给robot加上“s”。

  3、User-agent, Allow, Disallow 的“:”后跟一个字符空格。

  4、 路径后加斜线“/”和不加斜线是有区别的

  禁止:/帮助

  防止蜘蛛访问 /help.html、/helpabc.html、/help/index.html

  禁止:/帮助/

  防止蜘蛛访问 /help/index.html。但允许访问 /help.html, /helpabc.html

  5、Disallow 和 Allow 行的顺序是有意义的:

  例如:

  允许蜘蛛访问/admin/目录下的seo文件夹

  用户代理:* 允许:/admin/seo/

  禁止:/管理员/

  如果 Allow 和 Disallow 的顺序颠倒:

  用户代理:* 禁止:/admin/

  允许:/admin/seo/

  蜘蛛无法访问/admin/目录下的seo文件夹,因为第一个Disallow:/admin/已经匹配成功。

  六、关于机器人元

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

  Robots Meta标签没有大小写区分,name="Robots"表示所有搜索引擎,可以针对特定的搜索引擎(如google)编写,内容部分有四个命令选项:index、noindex、 follow, nofollow , 并且说明之间用“,”隔开。

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

  NoIndex 命令:告诉搜索引擎不要抓取这个页面

  跟随指令意味着搜索机器人可以沿着页面上的链接继续爬行;

  NoFollow 命令:告诉搜索引擎不允许从此页面找到链接并拒绝其继续访问。

  Robots Meta标签的默认值为Index和Follow;

  根据上面的命令,我们有以下四种组合:

  你可以抓取这个页面,你可以继续索引这个页面上的其他链接=

  您无权抓取此页面,但您可以抓取此页面上的其他链接并将其编入索引

  您可以抓取此页面,但不允许抓取此页面上的其他链接并将其编入索引

  您不得抓取此页面,也不得沿此页面抓取以索引其他链接。

  七、关于

  将“nofollow”放在超链接中以告诉搜索引擎不要抓取特定链接。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线