返回介绍

1.1 认识网络爬虫

发布于 2025-04-21 19:15:25 字数 2687 浏览 0 评论 0 收藏

1.1.1 网络爬虫的含义

在大数据时代,人类社会的数据正以前所未有的速度增长。数据蕴含着巨大的价值,无论是对个人工作、生活,还是对企业未来的发展和创新商业模式,都有着很大的帮助。充分挖掘数据潜在价值,能帮助人们找到更合适的合作对象、更便宜的生活用品,也能帮助企业找到更好的细分市场,有针对性地为企业日后的发展提供数据支撑。数据让人们更好地掌握市场动向,更好地应对市场,产生新的合理的决策。

数据背后所隐藏的巨大商业价值正开始被越来越多的人所重视,那么数据从何而来?可以从网上找数据,但是人工提取数据效率太低,从经济角度也不可行。购买数据是一个办法,但是目前公开交易的数据少之又少,很难与多样化的数据需求匹配。因此,对很多人和企业来说,如果想获取全面、有效、准确的数据,编写爬虫抓取数据是一种明智之选,这就用到了这本书的主题 - 网络爬虫。

网络爬虫是一种程序,编写网络爬虫的主要目的是将互联网上的网页下载到本地并提取出相关数据。网络爬虫可以自动化地浏览网络中的信息,然后根据制定的规则下载和提取信息。

如图 1-1 所示,如果把互联网比喻成一个蜘蛛网,那么网络爬虫就是在网上爬来爬去的蜘蛛。简单来讲,网络爬虫主要完成两个任务:一是下载目标网页,二是从目标网页中提取需要的数据。

图 1-1 网络爬虫示意图

1.1.2 网络爬虫的主要类型

网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层页面爬虫。实际的网络爬虫系统通常是几种爬虫技术相结合实现的。

1. 通用网络爬虫

通用网络爬虫又称全网爬虫,爬行对象从一些种子 URL 扩充到整个 Web,主要为门户站点、搜索引擎和大型 Web 服务提供商采集数据。

2. 聚焦网络爬虫

聚焦网络爬虫是指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫。与通用网络爬虫相比,聚焦网络爬虫只需要爬行与主题相关的页面,极大地节省了硬件和网络资源,保存的页面也因数量少而更新快,还可以很好地满足一些特定人群对特定领域信息的需求。聚焦网络爬虫是需要我们关注的重点爬虫类型。

3. 增量式网络爬虫

增量式网络爬虫是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化的网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。与周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只会在需要的时候爬行新产生或发生更新的页面,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费,但是增加了爬行算法的复杂度和实现难度。后面的章节将对增量式网络爬虫和去重方法做简要介绍。

4. 深层页面爬虫

Web 页面按存在方式分为表层网页和深层网页。表层网页是传统搜索引擎可以索引的页面,是以超链接可以到达的静态网页为主构成的 Web 页面。深层网页是大部分内容不能通过静态链接获取的,隐藏在搜索表单后的,只有用户提交一些关键词才能获得的 Web 页面。例如那些用户注册后内容才可见的网页就属于深层页面。后面的章节将向读者介绍让爬虫登录一个网站、爬取深层页面的方法。

1.1.3 简单网络爬虫的架构

前面已经介绍网络爬虫的两个主要任务是下载目标网页和从网页中解析信息。为了完成这两个任务,一个简单的网络爬虫就要包含图 1-2 所示的 4 个部分。

图 1-2 简单网络爬虫的架构

  • URL 管理器:管理将要爬取的 URL,防止重复抓取和循环抓取。
  • 网页下载器:这是下载网页的组件,用来将互联网上 URL 对应的网页下载到本地,是爬虫的核心部分之一。
  • 网页解析器:这是解析网页的组件,用来从网页中提取有价值的数据,是爬虫的另一个核心部分。
  • 输出管理器:这是保存信息的组件,用来把解析出来的内容输出到文件或数据库中。

以上 4 个部分是一个简单的爬虫架构,这里通过介绍简单的爬虫架构,让读者对爬虫有一个直观的印象,后面的章节将详细讲解网络爬虫架构的实现。

1.1.4 网络爬虫的应用场景

网络爬虫的应用十分广泛,不仅应用在搜索引擎上,普通用户和企业在抓取数据、分析数据的时候都需要借助于网络爬虫。这里用两个小例子来简单说明网络爬虫的应用场景。

假如现在有人想把北京的房子卖掉,需要委托给链家(或者我爱我家)的一位房产经纪人,就需要了解经纪人的业务能力,选择业务能力较强的经纪人,然而这两个房产中介网站并没有给出经纪人之间的成交对比。如果学习了爬虫技术,就可以写个爬取经纪人成交数据的爬虫,用爬虫爬取链家(或者我爱我家)网所有经纪人的成交记录,如图 1-3 所示。然后在经纪人的成交房产类型、成交数量、成交时间及成交价格之间做对比分析,从而找出成交能力最强的经纪人。

图 1-3 链家经纪人成交记录

另一个比较典型的例子是企业的广告合作。例如一家教育培训公司的领导,想要跟知乎上关注编程语言的意见领袖合作推广公司的培训课程,就需要了解在知乎的编程领域,哪位意见领袖的粉丝最多,哪位意见领袖的粉丝是公司的潜在培训对象。这时可以编写一个爬取知乎用户信息(包含从事领域、粉丝数量等内容)的爬虫,然后根据爬取下来的信息做一个简单的统计分析,从而找到可以寻求合作的优质对象。

以上两个例子在本书都有实现。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。