网络爬虫

网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要
组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,
不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为
复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取
的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述
过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定
的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析
结果还可能对以后的抓取过程给出反馈和指导。

爬虫问题

1)骚扰问题

2)法律风险

3)隐私泄露

Robots协议

robots是网站跟爬虫间的协议,用简单直接的txt格式文本方式告诉对应的爬虫被允许的权限,

也就是说robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。当一个搜索蜘蛛访问

一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会

按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站

上所有没有被口令保护的页面。

例如:京东的Robots.txt

 User-agent: *
Disallow: /?*
Disallow: /pop/*.html
Disallow: /pinpai/*.html?*
User-agent: EtaoSpider
Disallow: /
User-agent: HuihuiSpider
Disallow: /
User-agent: GwdangSpider
Disallow: /
User-agent: WochachaSpider
Disallow: /

语法格式:

User-agent:

该项的值用于描述搜索引擎robot的名字,在"robots.txt"文件中,
如果有多条User-agent记录说明有多个robot会受到该协议的限
制,对该文件来说,至少要有一条User-agent记录。如果该项
的值设为*,则该协议对任何机器人均有效,在"robots.txt"文件
中,"User-agent:*"这样的记录只能有一条。

Disallow:

该项的值用于描述不希望被访问到的一个URL,这个URL可以是一
条完整的路径,也可以是部分的,任何以Disallow开头的URL均不
会被robot访问到。例如"Disallow:/help"对/help.html 和/help/index.html
都不允许搜索引擎访问,而"Disallow:/help/"则允许robot访问/help.html,
而不能访问/help/index.html。任何一条Disallow记录为空,说明
该网站的所有部分都允许被访问,在"/robots.txt"文件中,至少要
有一条Disallow记录。如果"/robots.txt"是一个空文件,则对于所
有的搜索引擎robot,该网站都是开放的。

Allow:

该项的值用于描述希望被访问的一组URL,与Disallow项相似,这个
值可以是一条完整的路径,也可以是路径的前缀,以Allow项的值开
头的URL是允许robot访问的。例如"Allow:/hibaidu"允许robot访
问/hibaidu.htm、/hibaiducom.html、/hibaidu/com.html。一
个网站的所有URL默认是Allow的,所以Allow通常与Disallow搭配
使用,实现允许访问一部分网页同时禁止访问其它所有URL的功能。

需要特别注意的是Disallow与Allow行的顺序是有意义的,robot会

根据第一个匹配成功的Allow或Disallow行确定是否访问某个URL。

查看网站是否有robots协议的方法

直接在主域名URL上robots.txt

例如上面的京东 https://www.jd.com/robots.txt

网络爬虫 robots协议 robots.txt的更多相关文章

  1. [Python3网络爬虫开发实战] 3.1.4-分析Robots协议

    利用urllib的robotparser模块,我们可以实现网站Robots协议的分析.本节中,我们来简单了解一下该模块的用法. 1. Robots协议 Robots协议也称作爬虫协议.机器人协议,它的 ...

  2. 爬虫协议robots

    前面的话 Robots协议(也称为爬虫协议.机器人协议等)全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页 ...

  3. [python爬虫]Requests-BeautifulSoup-Re库方案--robots协议与Requests库实战

    [根据北京理工大学嵩天老师“Python网络爬虫与信息提取”慕课课程编写 慕课链接:https://www.icourse163.org/learn/BIT-1001870001?tid=100223 ...

  4. 芝麻HTTP:分析Robots协议

    利用urllib的robotparser模块,我们可以实现网站Robots协议的分析.本节中,我们来简单了解一下该模块的用法. 1. Robots协议 Robots协议也称作爬虫协议.机器人协议,它的 ...

  5. Robots协议(摘)

    robots协议 Robots协议(也称为爬虫协议.机器人协议等)的全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓 ...

  6. Python网络爬虫入门篇

    1.  预备知识 学习者需要预先掌握Python的数字类型.字符串类型.分支.循环.函数.列表类型.字典类型.文件和第三方库使用等概念和编程方法. 2. Python爬虫基本流程 a. 发送请求 使用 ...

  7. 【Python爬虫】01:网络爬虫--规则

    Python网络爬虫与信息提取 目标:掌握定向网络数据爬取和网页解析的基本能力. the website is the API 课程分为以下部分: 1.requsets库(自动爬取HTML页面.自动网 ...

  8. Python网络爬虫(四)

    关于Robots协议 Robots协议也称为爬虫协议,是网络爬虫排除标准(Robots Exclusion Protocol),用来告诉爬虫和搜索引擎哪些页面可以抓取,哪些不可以抓取.因为我们如果无限 ...

  9. 初探爬虫 ——《python 3 网络爬虫开发实践》读书笔记

    零.背景 之前在 node.js 下写过一些爬虫,去做自己的私人网站和工具,但一直没有稍微深入的了解,借着此次公司的新项目,体系的学习下. 本文内容主要侧重介绍爬虫的概念.玩法.策略.不同工具的列举和 ...

随机推荐

  1. FZU 2168 防守阵地 I(公式推导)(经典)(中等)

    Problem 2168 防守阵地 I Accept: 377    Submit: 1280 Time Limit: 3000 mSec    Memory Limit : 32768 KB  Pr ...

  2. linux常用命令---持续添加中...

    1.cp -r  源文件夹  目的文件夹   // -r 可递归所有子目录及文件 2.grep -r 查找内容 ./*    //递归查找当前目录下所有文件指定内容 3. 查看系统运行时间 who - ...

  3. ios11--UIButton

    // // ViewController.m // 02-UIButton(在代码中使用) // #import "ViewController.h" @interface Vie ...

  4. 修改RedHat 7.2 进程最大句柄数限制

    RedHat对进程打开文件句柄数主要通过设置全局值和登陆用户分别管理.其中/proc/sys/fs下设置全局最大文件句柄数和用户进程能打开的最大文件句柄数,这两个参数一般情况下不需要修改. 对于普通用 ...

  5. 在word中doc与docx的区别是什么(整理)

    在word中doc与docx的区别是什么(整理) docx 是Office2007使用的,是用新的基于XML的压缩文件格式取代了其目前专有的默认文件格式,在传统的文件名扩展名后面添加了字母x(即.do ...

  6. VS2010 使用TeeChart绘图控件 - 之一 - 控件和类的导入

    vs2010的用法和vc6有很大的不同,特别是在一些函数调用那里,当然.控件导入也是很不一样的 安装好控件后就可以在工程里加入teechart控件了 加入方法有如下几种: 1.添加Teechart控件 ...

  7. 特征变化--->特征向量中部分特征到类别索引的转换(VectorIndexer)

    VectorIndexer: 倘若所有特征都已经被组织在一个向量中,又想对其中某些单个分量进行处理时,Spark ML提供了VectorIndexer类来解决向量数据集中的类别性特征转换. 通过为其提 ...

  8. ubuntu下如何查看和设置分辨率 (转载)

    转自:http://blog.csdn.net/jcgu/article/details/8650423 在ubuntu下可以使用xrandr来设置自己需要的分辨率.大致步骤如下: 1.使用xrand ...

  9. 9.28NOIP模拟题

    9.28NOIP模拟题 题目 哈 哈哈 哈哈哈 英文题目与子目录名 ha haha hahaha 单个测试点时间限制 1秒 1秒 1秒 内存限制 256M 128M 64M 测试点数目 10 10 1 ...

  10. jeecg中列表查询数据关联其他表的显示

    1.A表字段:id,name;B表字段:id,name,fid(A表外键),现查询A表和B表的所有数据并且查询条件A,B都有,在前台页面list显示 2.后台方法: @RequestMapping(p ...