在《Week 11:学会扒网页》我们已经介绍过,通过捷径获取网页的方式有两种,一种是通过扒网页,一种是通过 API。

上一周的内容主要介绍了「扒网页」这种方法。它的主要思路就是把一个网页还原为 HTML,随后从纯文本中匹配出我们需要的部分(比如图片链接),再把这部分内容提取出来(比如下载链接里的图片)。

扒网页的方法适应的范围很广,所以我们说它「可耻但有效」,但它也有三个明显的局限性:

  1. 必须设计复杂的匹配:我们要精确地获取网页中的信息,就要精确匹配到想要的内容,这需要对正则表达式有一定的要求不说,还需要设计大量的步骤以及试错。
  2. 必须下载整个网页:因为必须精确匹配网页内的内容,所以我们必须无差别地下载整个网页的内容。哪怕我们只想要网页里的一句话,我们也不得不把网页里的所有图片都下载下来。
  3. 无法灵活应对变化:这也是扒网页这个方法最不稳定的原因。不同的公司会根据自身的发展需求,对网页的界面的组织方式和显示方式进行调整、改版、升级等等,而我们针对某一个时间点设计的扒网页流程很容易因为这些变动而失效。

出于对这三个局限性的厌恶,我们会希望有一种更稳定、更有针对性的方法,它能够让我们:

  1. 不必设计复杂的匹配,而是像查字典一样就能获取需要的内容。
  2. 不必下载整个网页,而是仅下载自己要用的那部分内容。
  3. 不必面对变化,不管网页设计怎么变,都不影响我们获取内容的那个方式。

有这么好的方法吗?有,这种方法就是借由 API 来获取网页里的内容。