外链论坛

 找回密码
 立即注册
搜索
查看: 38|回复: 2

只需5分钟,彻底弄懂网络爬虫是什么

[复制链接]

2944

主题

176

回帖

9909万

积分

论坛元老

Rank: 8Rank: 8

积分
99099301
发表于 2024-8-25 09:47:29 | 显示全部楼层 |阅读模式

针对非常多学习计算机与编程的朋友来讲,(网络)爬虫技术

是一个又熟练奥秘的名字。它给人的感觉,就像是一门无所不可的技术,经过能够获取到网络上各样数据。爬虫是不是真的这么神呢,本文将会以最直白的方式带你认识爬虫的今世前生。

爬虫——互联网的原住民

爬虫的起源非常的早,能够说互联网诞生没多久,爬虫就显现了,绝对的互联网原住民(土著)。

初期的互联网,可不像此刻这么蓬勃与便利。例如咱们此刻习以为常的各样搜索引擎:百度、谷歌之类的,那时还是不存在的。互联网上只是一个一个的孤立的网站,这些网站中的数据都是分布开的,拜访起来很不方便。

有人就想,能不可写个自动运行程序,把这些网站上的数据都收集起来,方便大众来获取呢?

说干就干,于是最早的爬虫程序就诞生了,这些爬虫程序能够抓取互联网上的所有网页,而后将所有页面上的内容复制到数据库中,再对内容进行处理、归类、制作索引…以方便用户查阅。

1998年的Google网站

为啥咱们在百度上搜索一下关键词,立刻就会有非常多结果出来,指向区别的网站或页面?

由于在这些搜索引擎的背面便是爬虫程序在日夜一直的在互联网上收集数据。

因此:爬虫——搜索引擎背面的"男人"

爬虫(Spider)名字的来历

爬虫便是一段执行的程序,能够自动的从网页上获取信息并保留。那为何这类程序被命名为爬虫呢。

这就要从爬虫的英文名说起了。在英文中,爬虫程序被命名为"spider",没错便是蜘蛛的意思。

试想一下,一个小虫子,持续在网(络)上爬过来爬过去,看到猎物(数据)就兴高采烈地收集起来,“蜘蛛”是不是非常的形象?

因此,写爬虫程序的程序员不该该被叫做程序员,而是“蜘蛛侠”(spiderman)!

爬虫程序的实现原理

其实爬虫程序的实现原理并不繁杂便是模拟咱们人类拜访网页的过程。

咱们平常拜访网页,便是在浏览器(browser)中输入目的网址,而后浏览器就会向目的网站发起一个HTTP请求(request),网站服务器(web server)收到这个拜访请求之后,就会把页面以HTTP响应(response)的方式,返回给浏览器。浏览器再将HTTP响应的数据渲染成咱们人类看到的页面。

爬虫程序便是以上人类的操作,用程序进行了实现。

一般,爬取网页数据时,只需要2个过程

打开网页→将详细的数据从网页中复制并导出到表格或资源库中。

简单来讲便是抓取和复制。

程序的好处就在于,它的执行速度非常的快,人打开一个页面要花5-10秒的时间。在一样的时间里,一个爬虫程序,可能已然拜访成百上千乃至更加多的页面了!

爬虫的另一面

然则正是由于爬虫程序执行的速度非常快,因此它会带来一个问题。

咱们晓得,网站的服务器处理用户请求的能力是有限的。倘若短期内,有海量的用户请求涌入,超出了服务器的处理能力,就会引起服务器故障,俗叫作:服务器”宕机”, 更形象的说服务器“爆”了、“挂”了。

服务器宕机的平常画面

因此,一方面,作为爬虫程序的研发者(蜘蛛侠),要重视程序爬取网站信息的频率,避免对网站的正常业务产生明显的影响。

另一方面,网站加入了有些技术手段来限制拜访的频率,以及对拜访者的身份进行校验(看拜访的到底是人类还是爬虫程序!)。

令人发指的验证码

验证码便是被网站广泛运用的一种技术,用来辨别拜访者是人类还是爬虫程序。

而且随着程序自动识别验证码的能力的提高,网站的验证码起始越来越变态了,登峰造极的便是传说中的12306网站的购票验证码,别说是程序了,就连脸盲症病人的人类分不清啊!

关于爬虫的“君子协议”

有些网站,尤其是商场网站,对爬虫是又爱又恨。

一方面,期盼网页上的机构信息能在互联网上有更高的揭发度、更易被搜索引擎获取,但另一方面,又担心机构有些机密的数据被泄漏。

因此认识决这个问题,国际互联网制定了一个关于爬虫的“君子协议”,约定网站上的那些内容能够被爬取,那些内容不行。

Robots协议(爬虫协议)的全叫作是“网络爬虫排除标准”(RobotsExclusion Protocol),网站经过Robots协议告诉搜索引擎那些页面能够抓取,那些页面不可抓取。该协议是国际互联网界通行的道德规范,虽然写入法律,然则每一个爬虫都应该遵守这项协议。

以淘宝网的robots.txt为例:

以Allow 项的值开头的 URL 是准许爬虫程序拜访的。例如,Allow:/article 准许百度爬虫引擎拜访 /article.htm等。

以Disallow 项为开头的链接是不准许百度爬虫引擎拜访的。例如,Disallow:/product/ 不准许百度爬虫引擎拜访 /product/ 等。

最后一行,Disallow:/ 禁止百度爬虫拜访除了 Allow 规定页面外的其他所有页面。

因此你是不可从百度上搜索到淘宝内部的制品信息的。

但有句话说得好,防君子不防小人,总会有些不守规矩的存在,于是就有了反爬虫技术

爬虫与反爬虫

爬虫与反爬虫便是“矛”与“盾”的关系。反爬虫便是想办法阻止爬虫程序无节制的爬取网页上信息的技术。

非常多有趣的技术能够阻止爬虫的爬取,其中不乏有些大开脑洞的方式,让人不仅啧啧叫作奇。其实上文说到的验证码技术,是一种反爬虫的手段,除此之外,还有文本混淆反爬虫、动态渲染反爬虫、信息校验反爬虫、代码混淆反爬虫……等等技术。

由于篇幅原由,这些技术在本文中就不一一为大众介绍了,请期待后续的文案吧!

回复

使用道具 举报

2902

主题

1万

回帖

9915万

积分

论坛元老

Rank: 8Rank: 8

积分
99159549
发表于 2024-10-4 21:25:44 | 显示全部楼层
“BS”(鄙视的缩写)‌
回复

使用道具 举报

2826

主题

1万

回帖

9956万

积分

论坛元老

Rank: 8Rank: 8

积分
99569755
发表于 前天 01:48 | 显示全部楼层
交流如星光璀璨,点亮思想夜空。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-10-18 21:20 , Processed in 0.076660 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.