网络爬虫基础


网络爬虫的尺寸

爬取网页:小规模,数据量小,爬取速度不敏感(Requests库)

爬取网站:中规模,数据量较大,爬取速度敏感(Scrapy库)

爬取全网:大规模,建立搜索引擎,爬取速度关键(定制开发,无第三方库)


网络爬虫带来的问题

1.骚扰问题

网络爬虫高频度的访问会给服务器带来极大的资源开销,对网站运行者来说,这无疑于一种骚扰。

2.法律风险

网络爬虫可能带来法律风险。这是因为服务器上的数据有产权归属,如果网络爬虫爬取使用者将爬取的数据用于牟利,可能会被法律制裁。

3.隐私泄露

网络爬虫可能具备突破简单访问控制的能力,获得被保护的数据从而泄露个人隐私。


网络爬虫的限制

来源审查:判断User-Agent进行限制

User-Agent会存储来访者的一些信息,比如客户端使用的操作系统以及浏览器的名称和版本。通过检查User-Agent的值,如果它并不表示一个浏览器,那么就很有可能是一个爬虫。因此,检查来访HTTP协议头的User-Agent域,只响应浏览器或友好爬虫的访问,可能会起到限制网络爬虫的效果。

Robots协议

Robots.txt告知所有爬虫该网站的爬取策略并要求爬虫遵守。


Robots协议的查看以及用法

一般在url的path路径里指定robots.txt就能查看到该网站的robots协议,因为robots协议放在网站的根目录下。

接下来看一下京东网站的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:

爬虫爬取时会声明自己的身份,它被存储在User-agent里。
User-agent;* 的意思就是该robots协议对任何爬虫都有效。

Disallow:

该参数指定要拦截的网页。以正斜线(/)开头,可以列出特定的网址或模式。
要屏蔽整个网站,则可以这样设置:

Disallow:/

要屏蔽某一目录以及其中的所有内容,则这样设置:

Disallow:/目录名/

要屏蔽某个具体的网页,则如下:

Disallow:网页.index

Disallow: /?* 的意思就是所有的爬虫都不可以访问以?开头的网页路径上的资源。
Disallow:/pop/.html 的意思就是任何爬虫都不可以访问pop.html的内容。

另外,注意到上例robots协议中还有四个类似

User-agent:EtaoSpider
Disallow:/

这样的语句。
它们的意思是这四个网络爬虫不可以爬取京东网站的所有资源。

要想了解robots协议的更多用法,可参考下面的博客:
https://blog.csdn.net/qq_40491569/article/details/83473703

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值