第1章 网络爬虫简介

欢迎来到网络爬虫的广阔天地!网络爬虫被用于许多领域,收集不太容易以其他格式获取的数据。你可能是正在撰写新报道的记者,也可能是正在抽取新数据集的数据科学家。即使你只是临时的开发人员,网络爬虫也是非常有用的工具,比如当你需要检查大学网站上最新的家庭作业并且希望通过邮件发送给你时。无论你的动机是什么,我们都希望你已经准备好开始学习了!

在本章中,我们将介绍如下主题:

  • 网络爬虫领域简介;
  • 解释合法性质疑;
  • 介绍Python 3安装;
  • 对目标网站进行背景调研;
  • 逐步完善一个高级网络爬虫;
  • 使用非标准库协助抓取网站。

假设我有一个鞋店,并且想要及时了解竞争对手的价格。我可以每天访问他们的网站,与我店铺中鞋子的价格进行对比。但是,如果我店铺中的鞋类品种繁多,或是希望能够更加频繁地查看价格变化的话,就需要花费大量的时间,甚至难以实现。再举一个例子,我看中了一双鞋,想等到它促销时再购买。我可能需要每天访问这家鞋店的网站来查看这双鞋是否降价,也许需要等待几个月的时间,我才能如愿盼到这双鞋促销。上述这两个重复性的手工流程,都可以利用本书介绍的网络爬虫技术实现自动化处理。

在理想状态下,网络爬虫并不是必需品,每个网站都应该提供API,以结构化的格式共享它们的数据。然而在现实情况中,虽然一些网站已经提供了这种API,但是它们通常会限制可以抓取的数据,以及访问这些数据的频率。另外,网站开发人员可能会变更、移除或限制其后端API。总之,我们不能仅仅依赖于API去访问我们所需的在线数据,而是应该学习一些网络爬虫技术的相关知识。

尽管在过去20年间已经做出了诸多相关裁决,不过网络爬虫及其使用时法律所允许的内容仍然处于建设当中。如果被抓取的数据用于个人用途,且在合理使用版权法的情况下,通常没有问题。但是,如果这些数据会被重新发布,并且抓取行为的攻击性过强导致网站宕机,或者其内容受版权保护,抓取行为违反了其服务条款的话,那么则有一些法律判例可以提及。 ...

Get 用Python写网络爬虫(第2版) now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.