Day057|你以为网络爬虫与网页抓取是一回事

今天是Andy学Python的第57 天哦! 

大家好,我是Andy。

这几天有朋友问,“听说你最近学习Python网页抓取,有没有兴趣搞个项目?”细问之,朋友目前有一个很麻烦又很无聊的任务,就是从网上查询并复制1W+企业的监测数据,然后将数据逐一保存到excel。我试了查询1家企业的1条记录,根据目前Andy的技术水平,使用Python搞不定。拿最简单的前三步来说,从excel中复制企业名称,打开浏览器指定网页里的搜索框,粘贴企业名称,我都实现不了。朋友听了,一脸不解,说网上有很多示例项目,代码都是现成的,你只需改下代码、搞个爬虫,自动抓取数据,然后粘贴到excel,这不是张飞吃豆芽——小菜一碟嘛!

我无语了,猛然发现,没有学习网页抓取之前,好像我也是这么想的。实际上,很多人并没有搞清“网络爬虫”与“网页抓取”之间的区别,一直以为二者是一回事。其实不然。

01.

网络爬虫

百度百科定义:

网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

搜狗百科定义:

网络爬虫(web crawler)也叫网页蜘蛛,网络机器人,是一种用来自动浏览万维网的程序或者脚本。爬虫可以验证超链接和HTML代码,用于网络抓取(Web scraping)。网络搜索引擎等站点通过爬虫软件更新自身的网站内容(Web content)或其对其他网站的索引。

维基百科定义:

网络爬虫(英语:web crawler),也叫网络蜘蛛(spider),是一种用来自动浏览万维网的网络机器人。其目的一般为编纂网络索引。网络搜索引擎等站点通过爬虫软件更新自身的网站内容或其对其他网站的索引。网络爬虫可以将自己所访问的页面保存下来,以便搜索引擎事后生成索引供用户搜索。

综合三个定义,网络爬虫目的是按要求获取万维网信息,编纂网络索引,主要应用于搜索引擎。

那么问题来了,我们又不是做搜索引擎,学习网络爬虫有P用?

02.

网页抓取

百度百科与搜狗百科对网页抓取均无定义,只有基本介绍(内容一模一样,如下)

网页抓取主要有三个方面:

1. 搜集新出现的网页;

2. 搜集那些在上次搜集后有改变的网页;

3. 发现自从上次搜集后已经不再存了的网页,并从库中删除。

维基百科定义个人感觉相对靠谱:

网页抓取是一种从网页上获取页面内容的计算机软件技术。通常透过软件使用低级别的超文本传输协议模仿人类的正常访问。

网页抓取和网页索引极其相似,其中网页索引指的是大多数搜索引擎采用使用的机器人或网络爬虫等技术。与此相反,网页抓取更侧重于转换网络上非结构化数据(常见的是HTML格式)成为能在一个中央数据库和电子表格中储存和分析的结构化数据。网页抓取也涉及到网络自动化,它利用计算机软件模拟了人的浏览。网页抓取的用途包括在线的价格比较,联系人抓取,气象数据监测,网页变化检测,科研,混搭和Web数据集成。

技术层面:网络抓取用于自动化获取万维网上的信息

1. 人工复制与粘贴:最好的网页抓取技术也比不上人类的手工复制与粘贴,尤其是在某些网站采取技术手段禁止自动化网页抓取的情况下,人工的复制与粘贴就成了唯一的解决方案。

2. 文本搜索与正则表达式:文本搜索并且配合正则表达式可以有效的从页面上提取需要的内容。在基于UNIX的系统上可以使用grep,在其他平台或其他编程语言(例如Perl,Python)中也有相应的命令或语法。

3. 基于HTTP编程:无论是静态网页还是动态网页均可以通过发送HTTP请求给服务器来获得,所以可以通过直接进行socket编程来实现。

4. HTML语法分析器:很多网站都是使用数据库来存储他们的数据,用户访问的时候再通过程序自动按照指定的格式生成,由于生成的这些网页都采用了相同的的格式或者模板等,所以可以通过对获取到的HTML页面使用语法分析器进行语法分析,然后就可以使用HTML标签来提取需要的内容。使用HTML语法分析器同文本搜索与正则表达式相比较程序更加的健壮,也免于构造复杂的正则表达式。

从上面解释可以看出:网页抓取技术层面分四类,其中人工复制与粘贴也是网页抓取的一种。

03.二者区别

通过分析网络抓虫与网页抓取的定义,我们平常所说的“网络爬虫”其实并不是真正的“网络爬虫”,而是“网页抓取”,或者更确切的讲是“网页数据抓取”,只不过是利用爬虫自动化完成网页数据抓取工作。真正的“网络爬虫”是为了编制搜索引擎的索引数据库。

51Day Day up!

向上向善,日进一步!

每天学习,努力成长!

定个小目标,开启成长的旅程,遇见更好的自己。

这是我们和自己的约定,许诺自己不负韶华。

路虽远,行则将至;事虽难,做则必成。

成长的最好时机,就是当下。

Copyright © 2021 Andy学Python

转载事宜请留言 | 获得授权后方可转载

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章