文档章节

网络爬虫之Robots协议

Jacktanger
 Jacktanger
发布于 2018/01/20 16:31
字数 893
阅读 413
收藏 1

一.什么是Robots协议

    Robots协议的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。

    一句话概括就是,站点与搜索引擎爬虫之间的"君子协议"。

二.如何使用Robots协议

    一般有两种方法。

    (1)在网站的根目录下放置一个文件,起名为 robots.txt ,其中规定了哪些内容可以爬取和哪些内容不想被抓取:

    robots.txt 必须放在站点的根目录下,文件名必须小写。在 robots.txt 文件中,至少要有一条 Disallow 记录。如果 robots.txt 文件为空,则允许所有搜索引擎Robots都是开放的。

    robots.txt 文件中的记录通常以一行或多行 User-agent 开始,后面加上若干 Disallow 行,解释如下:

    a.User-agent:指定搜索引擎 robots 的名字,常见的有Baiduspider、Sogouspider、360Spider等。如果有多条 User-agent 记录,说明有多个robots会受到该协议的限制。至少要有一条 User-agent 记录。如果该值为 * ,则该协议对所有爬虫都有效。

    b.Disallow:设置不希望被访问到的URL,可以是完整的路径,也可以是相对路径。任何以 Disallow 开头的URL均不会被机器人访问到。比如:"Disallow:/product",则对 "/product01.html"和"/product/01.html"都不允许机器人访问。而"Disallow:/product/",则允许访问"/product01.html",但不能访问"/product/01.html"。

    (2)在网页的Meta元标签里面设置 Robots Meta 标签:

    第一种方法是粗粒度的方法,设置 Robots Meta 的值来限制爬虫访问则是一种细粒度的方法,把限制细化到了每个网页。

    Content部分有6个指令选项:all、index、noindex、follow、nofollow、none,指令组合使用时用","分隔。

        index:允许被搜索引擎索引进数据库;

        follow:允许通过此网页的链接继续索引其它网页;

        all:默认值,相当于"index,follow",允许被搜索引擎索引进数据库,允许通过此网页的链接继续索引其它网页;

        noindex:不被搜索引擎索引进数据库,但搜索引擎可以通过此网页的链接继续索引其它网页;

        nofollow:被搜索引擎索引进数据库,但搜索引擎不可以通过此网页的链接继续索引其它网页;

        none:不被搜索引擎索引进数据库,且搜索引擎不可以通过此网页的链接继续索引其它网页,相当于"noindex,nofollow"。

    Robots Meta标签放在页面的<head></head>中,告诉搜索引擎Robots如何抓取该页的内容。
    <meta name="robots" content="none">:防止所有搜索引擎访问。
    <meta name="Baiduspider" content="noindex,nofollow">:指定仅限制百度搜索引擎访问。

三.Robots使用示例

    (以淘宝网为例:https://www.taobao.com/)

    淘宝网的robots文件:https://www.taobao.com/robots.txt

User-agent:  Baiduspider
Allow:  /article
Allow:  /oshtml
Disallow:  /product/
Disallow:  /

User-Agent:  Sogouspider
Allow:  /article
Allow:  /oshtml
Allow:  /product
Disallow:  /

#...略去其他爬虫详情

User-Agent:  *
Disallow:  /

    如上所示:

    对于百度搜索引擎,不允许访问,限制效果图:

    对于搜狗搜索引擎,允许访问,效果图:

    可以看到,对比很明显,百度搜索引擎机器人被限制了。

© 著作权归作者所有

Jacktanger
粉丝 36
博文 183
码字总数 103237
作品 0
浦东
程序员
私信 提问
网络爬虫,如何做到 “盗亦有道” ?

网络爬虫的实质,其实是从网络上“偷”数据。通过网络爬虫,我们可以采集到所需要的资源,但是同样,使用不当也可能会引发一些比较严重的问题。 因此,在使用网络爬虫时,我们需要做到“盗亦...

bestdwd
2017/06/09
0
0
什么样的爬虫才是好爬虫:Robots协议探究

  网站的管理者们通常会有这样一种心态:一方面期待百度、Google这样的搜索引擎来抓取网站的内容,另一方面又很厌恶其他来路不明的网络爬虫抓取自己的信息。正是因为这样,才有“好爬虫”、...

FreeBuf
2018/03/02
0
0
Python网络爬虫基础及Requests库入门

Robots协议 网络爬虫的问题 在讲python网络爬虫之前,先来看看网络爬虫的一些问题以及robots协议。首先python爬虫功能主要使用的库有Requests库和Scrapy库。他们的区别如下: 正常情况下Web...

zengxiantao1994
2017/10/13
0
0
芝麻HTTP:分析Robots协议

利用urllib的模块,我们可以实现网站Robots协议的分析。本节中,我们来简单了解一下该模块的用法。 1. Robots协议 Robots协议也称作爬虫协议、机器人协议,它的全名叫作网络爬虫排除标准(R...

芝麻软件
2018/02/08
63
0
2019测试指南-web应用程序安全测试(二)查看Web服务器图元文件的信息泄漏

本节介绍如何测试robots.txt文件以查找Web应用程序目录或文件夹路径的信息泄漏。此外,Spiders,Robots或Crawler要避免的目录列表也可以创建为应用程序的Map执行路径的依赖项(OTG-INFO-007)...

猪鼻子插葱
2019/03/04
18
0

没有更多内容

加载失败,请刷新页面

加载更多

IDEA 拉取、上传、更新 项目到 Gitee+GitHub_超详细超简单版

注:本人使用的idea是最新版(2019.1.2),要是其他的版本的不要惊慌〜,基本上都一样,没有什么太大的差别的 首先我要说一下,拉取项目分两个,一个,你就没有项目,拉取仓库的整个项目,而...

杨木发
今天
54
0
pyqt5环境搭建(Ubuntu19.10+pycharm+python3)

1.安装pyqt5 sudo apt-get install python3-pyqt5 sudo apt-get install qttools5-dev-tools sudo apt-get install qt5-default 2.安装pycharm 下载pycharm社区版安装包并解压 在桌面新建pyc......

小芯片
今天
54
0
Vue造轮子-tab组件(中)

1. 如果给一个标签一个class,标签本身又有class,vue是默认会合并的。只有两个属性是这样一个是class,一个是style。这样就比较好改样式。 <g-tabs-head class="red"></g-tabs> 2. 组件的...

ories
昨天
59
0
Windows 版本 Anaconda 配置加速源安装软件

C:\Users\lenovo\.condarc 首先安装Anaconda最新版本。 其次添加安装目录到环境变量。文本为 C:\ProgramData\Anaconda3\Library\bin 运行 conda 命令在 Windows 用户下生成文件 .conda...

白豆腐徐长卿
昨天
232
0
如何从Bash函数返回字符串值

我想从Bash函数返回一个字符串。 我将用Java编写示例以显示我想做的事情: public String getSomeString() { return "tadaa";}String variable = getSomeString(); 下面的示例在bash中...

javail
昨天
71
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部