大数据采集与爬虫
上QQ阅读APP看书,第一时间看更新

2.3 网络基础知识

除了使用Python之外,爬虫涉及的基本技术包括HTTP、requests库和BeautifulSoup库。

HTTP是指超文本传输协议,是一种网络通信协议。

requests库是一个专门用于编写爬虫的请求库。

BeautifulSoup库是一个专门用于解析爬虫所爬取的页面数据的解析库。

2.3.1 HTML

1.HTML基础

HTML(Hyper Text Markup Language,超文本标记语言)使用起来比较简单,功能强大,具有可扩展性、平台无关性、通用性的特性。它以标签的形式描述网页的内容,因此,HTML并不是一种编程语言,而是一种标记语言。网页本身就是一个文本文件,通过在文本文件中加入特定标记,让浏览器能够快速、顺序地识别网页内容。

2.HTML页面基本结构

<!DOCTYPE html>表示这是一个文本类型的HTML文件。

<html>表示这是一个文本类型,并且遵守的是HTML规范和标准。

<head>表示页面的头部信息,用于描述页面的概要信息,如标题、语言、字符集等。

<meta>表示页面的元信息,即基本信息。它放在<head>标签之中,可以实现对网页的特定操作,如是否清除页面缓存,还可以给搜索引擎提供搜索支持等。

<title>表示页面的标题。

<body>表示页面的主体内容。浏览器的显示区域就是<body>的工作范围。<body>可以被看成一个容器,里面可以包含其他标签。

3.一个HTML实例

使用记事本编写HTML网页内容,如图2-2所示。用浏览器渲染的效果如图2-3所示。

图2-2 HTML网页内容

图2-3 HTML渲染效果

2.3.2 URI和URL

URI(Uniform Resource Identifier,通用资源标识符)由包括确定语法和相关协议的方案所定义。Web上可用的每种资源,如HTML文件、图像、视频片段、程序等由一个URI进行定位。URI是以一种抽象的、高层次概念定义统一资源标识,而URL(Uniform Resource Locator,统一资源定位符)则是具体的资源标识的方式。URL是URI的一个子集。

URL是一种具体的URI,即URL可以用来标识一个资源,而且指明了如何定位这个资源。URL是对互联网上可得到的资源的位置和访问方法的一种简洁表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。图2-4所示为一个URL,其各个组成部分的含义如下:http表示使用的网络协议;hostname是解析后指向的IP地址;port表示程序指定的端口号;/CSS是需要访问的文件路径;?后面跟传递的参数;#表示指定的页面位置。

图2-4 URL内容

2.3.3 HTTP

HTTP是一种网络通信协议,主要包括URL、Request和Response。

网络中的设备能够基于该协议进行网络资源的交互,就像两个使用不同语言的人需要交流一样,如果都说自己的语言对方肯定听不懂,但要是双方都会英语,那就可以交流了。在网络中,这样的交流发生在客户端和服务器之间。客户端的浏览器通常是具体请求Request的发起者,而服务器通过Response响应数据返回给客户端浏览器。客户端和服务器之间交流的内容通常是由Text文本、CSS层叠样式表、Image图片、Video视频、Script脚本等内容组成的Web文件,如图2-5所示。

图2-5 HTTP交互内容

2.3.4 Request和Response

在网络通信过程中,需要使用基于HTTP的Request(请求)向URL所在的服务器请求数据。然后,该服务器通过Response(响应)将需要的数据返回客户端。实际上,输入URL后,浏览器给Web服务器发送了一个Request,Web服务器收到Request之后进行处理,生成相应的Response,然后发送给浏览器,浏览器解析Response中的HTML,这样用户就看到了网页,其过程如图2-6所示。

图2-6 Request和Response交互过程

Request是指通过客户端浏览器向服务器发起信息请求的内容。通过把需要请求的具体内容按照特定的网络协议进行编码,包括浏览器的信息、HTTP的状态参数以及客户端的Cookie。因此,服务器收到Request之后就可以清楚地知道是谁在请求数据、它有没有请求过数据、对应客户端的Session是否有内容,以及应该返回哪些数据。

Response是指通过服务器向客户端返回数据的响应。服务器在收到客户端请求之后,根据客户端提供的需求和状态,立刻生成对应的页面信息和Cookie,并返回给客户端。

图2-7所示是访问百度首页过程中Request和Response的交互信息。

图2-7 访问百度首页过程中Request和Response的交互信息