网络爬虫,如何做到 “盗亦有道” ?

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

因此,在使用网络爬虫时,我们需要做到“盗亦有道”。

网络爬虫主要分为以下三类:

1. 小规模,数据量小,爬取速度不敏感;对于这类网络爬虫我们可以使用Requests库来实现,主要用于爬取网页;

2. 中规模,数据规模较大,爬取速度敏感;对于这类网络爬虫我们可以使用Scrapy库来实现,主要用于爬取网站或系列网站;

3. 大规模,搜索引擎,爬取速度关键;此时需要定制开发,主要用于爬取全网,一般是建立全网搜索引擎,如百度、Google搜索等。

在这三种中,我们最为常见的是第一种,大多数均是小规模的爬取网页的爬虫。

对于网络爬虫,也有很多反对声音。因为网络爬虫会不停的向服务器发出请求,影响服务器性能,对服务器产生骚扰行为,并加大了网站维护者的工作量。

除了对服务器的骚扰外,网络爬虫也有可能引发法律风险。因为服务器上的数据有产权归属,如果将该数据用于牟利的话,将会带来法律风险。

此外,网络爬虫也可能会造成用户的隐私泄露。

简而言之,网路爬虫的风险主要归于以下三点:

  • 对服务器的性能骚扰
  • 内容层面的法律风险
  • 个人隐私的泄露

因此,网络爬虫的使用需要有一定的规则。

在实际情况中,一些较大的网站都对网络爬虫进行了相关限制,整个互联网上也将网络爬虫视为可规范的功能来看待。

对于一般的服务器来讲,我们可以通过2种方式来限制网络爬虫:

1. 如果网站的所有者有一定的技术能力,可以通过来源审查来限制网络爬虫。

来源审查,一般通过判断User-Agent来进行限制,本篇文章着重介绍第2种。

2. 通过Robots协议来告诉网络爬虫需要遵守的规则,哪些可以爬取,哪些是不允许的,并要求所有的爬虫遵守该协议。

第2种是以公告的形式告知,Robots协议是建议但非约束性,网络爬虫可以不遵守,但可能会存在法律风险。通过这两种方法,互联网上形成了对网络爬虫的道德和技术上的有效限制。

那么,我们在编写网络爬虫时,就需要去尊重网站的维护人员对网站资源的管理。

互联网上,部分网站没有Robots协议,所有数据都可以爬取;不过,绝大多数的主流网站都支持Robots协议,有做相关限制,下面就具体介绍下Robots协议的基本语法。

Robots协议(Robots Exclusion Standard,网络爬虫排除标准):

作用:网站告知网络爬虫哪些页面可以爬取,哪些不行。

形式:在网站根目录下的robots.txt文件。

Robots协议的基本语法:*代表所有,/代表根目录。

比如,PMCAFF的Robots协议:http://www.pmcaff.com/robots.txt

User-agent: *

Disallow: /article/edit

Disallow: /discuss/write

Disallow: /discuss/edit

第1行中User-agent:*,是指所有的网络爬虫都需要遵守如下协议;

第2行中Disallow: /article/edit,是指所有的网络爬虫都不允许访问article/edit下的内容,其他同理。

如果观察京东的Robots协议,https://www.jd.com/robots.txt,可以看到下面有User-agent: EtaoSpider,Disallow: /,其中EtaoSpider是恶意爬虫,不允许其爬取京东的任何资源。

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: /

有了Robots协议后,可以对网站的内容做个规范,告诉所有的网络爬虫哪些可以爬取,哪些不允许。

需要特别注意的是,Robots协议都是存在根目录下的,不同的根目录可能Robots协议是不一样的,在爬取时需要多加留意。

网络爬虫,“盗亦有道”。

参考资料:中国大学MOOC课程,Python网络爬虫与信息提取

-----   End   -----

作者:杜王丹,微信公众号:杜王丹,互联网产品经理。

时间: 2024-08-03 19:19:46

网络爬虫,如何做到 “盗亦有道” ?的相关文章

网络爬虫的“盗亦有道”

2.1 网络爬虫引发的问题 图 网络爬虫的尺寸 网络爬虫的限制 来源审查:判断User-Agent进行限制 检查来访HTTP协议头的User-Agent域,只响应浏览器或者友好爬虫的访问. 发布公告:Robots协议 告知所有爬虫网站的爬取策略,要求爬虫遵守 2.2 Robots协议 Robots Exclusion Standard 网络爬虫排除标准 作用:网站告知网络爬虫哪些页面可以抓取,哪些不行. 形式:在网站根目录下的robots.txt文件. 例子:京东的Robots协议 https:

网络爬虫-课程大纲

[第一周]网络爬虫之规则 单元1:Requests库入门 单元2:网络爬虫的“盗亦有道” 单元3:Requests库网络爬虫实战(5个实例) [第二周]网络爬虫之提取 单元4:Beautiful Soup库入门 单元5:信息组织与提取方法 单元6:实例1:中国大学排名爬虫 [第三周]网络爬虫之实战 单元7:Re(正则表达式)库入门 单元8:实例2:淘宝商品比价定向爬虫 单元9:实例3:股票数据定向爬虫 [第四周]网络爬虫之框架 单元10:Scrapy爬虫框架 单元11:Scrapy爬虫基本使用

Python网络爬虫入门篇

1.  预备知识 学习者需要预先掌握Python的数字类型.字符串类型.分支.循环.函数.列表类型.字典类型.文件和第三方库使用等概念和编程方法. 2. Python爬虫基本流程 a. 发送请求 使用http库向目标站点发起请求,即发送一个Request,Request包含:请求头.请求体等. Request模块缺陷:不能执行JS 和CSS 代码. b. 获取响应内容 如果requests的内容存在于目标服务器上,那么服务器会返回请求内容. Response包含:html.Json字符串.图片,

简谈-网络爬虫的几种常见类型

众所周知,网络爬虫(或称为网络爬虫.网络蜘蛛.机器人)是搜索引擎最上游的一个模块,是负责搜索引擎内容索引的第一关. 很多人为了提高自己网站的索引量,都是去网上随便找一些爬虫工具来使用.但是很多人不知道,这些抓取网站的小爬虫是有各种各样的不同性格的. 常见的优秀网络爬虫有以下几种类型: 1.批量型网络爬虫:限制抓取的属性,包括抓取范围.特定目标.限制抓取时间.限制数据量以及限制抓取页面,总之明显的特征就是受限: 2.增量型网络爬虫(通用爬虫):与前者相反,没有固定的限制,无休无止直到抓完所有数据.

[No000090]微信公众号网络爬虫接口分析1

一直想做个公众号的网络爬虫,网上的好多接口都依赖于"瘦狗",不过微信接口一直在变,现在"瘦狗"也只允许查看10条历史记录,所以今天趁着下雨,研究了一下apk内部的东西,但是怕微信又改,我透漏的不能太多,有兴趣可以私下交流. 从微信上复制出来的url:https://mp.weixin.qq.com/mp/getmasssendmsg?__biz=MzI4OTA5MDgxNw==#wechat_webview_type=1&wechat_redirect 用浏

基于Nutch+Hadoop+Hbase+ElasticSearch的网络爬虫及搜索引擎

网络爬虫架构在Nutch+Hadoop之上,是一个典型的分布式离线批量处理架构,有非常优异的吞吐量和抓取性能并提供了大量的配置定制选项.由于网络爬虫只负责网络资源的抓取,所以,需要一个分布式搜索引擎,用来对网络爬虫抓取到的网络资源进行实时的索引和搜索. 搜 索引擎架构在ElasticSearch之上,是一个典型的分布式在线实时交互查询架构,无单点故障,高伸缩.高可用.对大量信息的索引与搜索都可以在近 乎实时的情况下完成,能够快速实时搜索数十亿的文件以及PB级的数据,同时提供了全方面的选项,可以对

网络爬虫技术入门_Python基础与爬虫技术

Python基础与爬虫技术  课程学习地址:http://www.xuetuwuyou.com/course/195 课程出自学途无忧网:http://www.xuetuwuyou.com 课程简介 本作为一种便捷地收集网上信息并从中抽取出可用信息的方式,网络爬虫技术变得越来越有用.使用Python这样的简单编程语言,你可以使用少量编程技能就可以爬取复杂的网站. <Python 基础与爬虫技术>讲解了从静态页面爬取数据的方法以及使用缓存来管理服务器负载的方法.此外,本课程还介绍了如何使用AJA

网络爬虫小案例_2017/3/10

今晚,了解了一下网络爬虫,那么什么是网络爬虫呢? 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常被称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本,已被广泛应用于互联网领域.搜索引擎使用网络爬虫抓取Web网页.文档甚至图片.音频.视频等资源,通过相应的索引技术组织这些信息,提供给搜索用户进行查询.网络爬虫也为中小站点的推广提供了有效的途径,网站针对搜索引擎爬虫的优化曾风靡一时. 网络爬虫的基本工作流程如下:     1.首先选取一部分精心挑选的种子U

使用网络爬虫的一丝心得

因为参与了创新计划,所以懵懵懂懂的接触到了网络爬虫. 爬数据使用工具,因此了解到Python.asp.net等可以用来抓数据. 想想在学习.net的时候根本没有想到会使用在这个上面--书本上的知识都是死的,那学习的基础知识只能通过不断的拓展使用领域才能在更好的得到深化.应用! 进入一个陌生的领域,从入门到精通的路真的是需要用汗水积累起来的--没有真正的天才,只有自感聪明的蠢材.(自我审视) 有句话说的特别的好:"世界上两种聪明的人:一种是从来不认为自己聪明的聪明人:而另一种是自以为自己很聪明的'